博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JXL把数据库数据导出为EXCEL文件
阅读量:2809 次
发布时间: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/

你可能感兴趣的文章
CentOS7 安装 PHP7.2
查看>>
Centos7安装PHP、安装MySQL、安装apache
查看>>
docker 镜像制作
查看>>
ssh scp 上传下载文件
查看>>
VUE-CLI3全局引入less的变量
查看>>
编译原理课程设计词法分析
查看>>
报刊订阅管理系统的设计与实现
查看>>
手把手教你破解文件密码、wifi密码、网页密码
查看>>
爬取小说网站章节和小说语音播放
查看>>
高校宿舍管理系统详细需求分析说明书
查看>>
CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)...
查看>>
rpg游戏技能模型
查看>>
bzoj 4321: queue2
查看>>
Swift使用Alamofire实现网络请求
查看>>
springmvc+shiro认证框架配置
查看>>
ASP.NET 创建WebService——简单例子
查看>>
ASP.NET Core 中文文档 第三章 原理(4)路由
查看>>
递归查询树,并绑定到界面控件
查看>>
浅谈ES6原生Promise
查看>>
程序员的源代码阅读方法
查看>>