博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JXL把数据库数据导出为EXCEL文件
阅读量:2807 次
发布时间:2019-05-13

本文共 3372 字,大约阅读时间需要 11 分钟。

JXL把数据库数据导出为EXCEL文件1.第一步:查处数据库信息2.解析为wookbook对象3.保存到服务器提供下载

public String exportMeetingUser() throws NumberFormatException,			ServiceException, IOException, RowsExceededException,			WriteException {		String forward = SUCCESS;		// TODO 进行导出操作		// 获取查询条件		String username = this.getParameter("username");		String mobile = this.getParameter("mobile");		String isAdmin = this.getParameter("isAdmin");		String meetingId = this.getParameter("meetingId");		User user = new User();		user.setName(username);		user.setMobile(mobile);		// 把PAGE_SIZE设置很大		pageSize = 1000;		Pager
pager = userService.findMeetingUserPager( Long.valueOf(meetingId), user, currentPage, pageSize, isAdmin); log.debug("meeting id is: {}", meetingId); List
userList = pager.getPageRecords(); String[] title = { "姓名", "手机号码", "职位(通讯录)", "单位", "房间号", "显示房间号", "性别", "电子邮箱", "城市", "加入通讯录", "显示电话号码", "排序", "职位简称", "显示职位简称" }; // TODO 进行导出的操作 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String exportFileName = sdf.format(new Date()); // 创建文件夹 File uploadFoldPath = new File(fileSystemService.getDocumentRoot() + this.USER_EXPORT_FOLDER); if (!uploadFoldPath.exists()) { uploadFoldPath.mkdirs(); } // 判断文件是否存在 String fileSaveName = exportFileName + ".xls"; String dstPath = fileSystemService.getDocumentRoot() + this.USER_EXPORT_FOLDER + File.separator + fileSaveName; String from = "WEB"; String documentRoot = fileSystemService.getDocumentRoot(); // DOCUMENT ROOT getRequest().setAttribute("documentRoot", documentRoot); getRequest().setAttribute("from", from); OutputStream os = new FileOutputStream(dstPath); // 再建完这个文件的时候再建立工作文件 jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os); int rowIndex = 0; Label label; WritableCellFormat wc = new WritableCellFormat(); wc.setAlignment(Alignment.CENTRE); //wc.set WritableSheet sheet = wwb.createSheet("会议用户导出", 0); label = new Label(2, rowIndex, "此文件为会议云用户导出文件"); sheet.addCell(label); rowIndex++; // 将列标题循环添加到Label中 for (int i = 0; i < title.length; i++) { label = new Label(i, rowIndex, title[i]); sheet.addCell(label); } rowIndex++; // TODO下面是添加数据 if (userList != null && userList.size() > 0) { for (User exportUser : userList) { MeetingMember member = meetingMemberService.selectById( exportUser.getId(), Long.valueOf(meetingId)); exportUser.setMeetingMember(member); // "姓名", "手机号码", "职位(通讯录)", "单位", "房间号", "显示房间号", "性别", // "电子邮箱", "城市", "加入通讯录", "显示电话号码", "排序", "职位简称", "显示职位简称" // 用户名 label = new Label(0, rowIndex, exportUser.getName()); sheet.addCell(label); label = new Label(1, rowIndex, exportUser.getMobile()); sheet.addCell(label); label = new Label(2, rowIndex, exportUser.getMeetingMember() .getJob()); sheet.addCell(label); // 单位 label = new Label(3, rowIndex, exportUser.getMeetingMember() .getDepartment()); sheet.addCell(label); // 房间号 label = new Label(4, rowIndex, exportUser.getMeetingMember() .getRoomNumber()); rowIndex++; } } wwb.write(); wwb.close(); // 现在开始进行下载操作 MeetingFiles meetingFiles = new MeetingFiles(); meetingFiles.setFilePath(this.USER_EXPORT_FOLDER); meetingFiles.setFileName(fileSaveName); meetingFiles.setFileSaveName(fileSaveName); this.getRequest().setAttribute("meetingFiles", meetingFiles); return forward; }

转载地址:http://cjlmd.baihongyu.com/

你可能感兴趣的文章
由linux0.11进程调度小窥内存分段机制(转)
查看>>
树型结构的基本概念
查看>>
Linux以树的结构组织所有目录,图解Linux的目录结构
查看>>
在线工具
查看>>
Mybatis报错----result Map
查看>>
互联网服务端技术——如何学(下A)
查看>>
游戏行业随想
查看>>
理解TCP/IP网络栈&编写网络应用(下)
查看>>
【败局】成都:手游第四城的泡沫与坍缩
查看>>
深入boost的asio框架
查看>>
BOOST enable_shared_from_this
查看>>
STL容器
查看>>
开源社区
查看>>
程序员编程生涯中会犯的7个错误
查看>>
你不知道的关于计算机大师Dijkstra的事情
查看>>
TrinityCore中的PreparedStatement
查看>>
分清成员函数,非成员函数和友元函数
查看>>
端游、手游服务端常用的架构是什么样的?
查看>>
游戏服务端究竟解决了什么问题?
查看>>
mongodb集合中查询文档
查看>>