博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POI 实现excel 导出
阅读量:6408 次
发布时间:2019-06-23

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

  • maven 依赖
org.apache.poi
poi
3.17
复制代码
  • controller 导出方法
@RequestMapping("/recordExcel")public void recordExcel(HttpServletResponse response,LbsLocRecord lbsLocRecord) {        List
recordList = lbsLocRecordService.getList(lbsLocRecord); HSSFWorkbook workbook = new HSSFWorkbook(); String sheetName = "定位记录"; HSSFSheet sheet = workbook.createSheet(sheetName); sheet.setDefaultRowHeightInPoints(1F); sheet.setDefaultColumnWidth(20); sheet.setColumnWidth(7,50*256); // 字体 HSSFFont font = workbook.createFont(); font.setFontHeightInPoints((short) 13); // 单元格内容样式 HSSFCellStyle normalStyle = workbook.createCellStyle(); normalStyle.setLocked(true); normalStyle.setWrapText(true); normalStyle.setFont(font); HSSFRow firstRow = sheet.createRow(0); ArrayList
headCellNames = Lists.newArrayList("姓名", "员工编号", "手机号", "部门", "经度", "纬度", "定位时间", "位置描述", "错误码", "错误信息","创建时间"); ExcelUtil.setHeadCellNames(firstRow,normalStyle,headCellNames); ArrayList
cellValues; for (int i=0;i< recordList.size();i++){ LbsLocRecord record = recordList.get(i); cellValues = Lists.newArrayList( record.getPersonName(), record.getPersonCode(), record.getDeviceId(), record.getDeptName(), record.getLon(), record.getLat(), record.getTime(), record.getPosition(), record.getErrcode(), record.getErrmsg(), DateUtil.DateToString(record.getCreateAt())); HSSFRow hssfRow = sheet.createRow( i + 1); ExcelUtil.setCellValue(hssfRow,normalStyle,cellValues); } try { String filename = "record.xls"; // 自定义输出文件名 String typeName = new String(filename.getBytes("UTF-8"), "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + typeName); OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); }}复制代码
  • excel 工具类
public class ExcelUtil {public static void setHeadCellNames(HSSFRow firstRow,HSSFCellStyle cellStyle, List
headCellNames){ // 添加表头内容 for (int i = 0; i < headCellNames.size(); i++) { HSSFCell headCell = firstRow.createCell(i); headCell.setCellValue(headCellNames.get(i)); headCell.setCellStyle(cellStyle); }}public static void setCellValue(HSSFRow hssfRow,HSSFCellStyle cellStyle,List
cellValues){ // 添加数据内容 for (int i = 0; i < cellValues.size(); i++) { // 创建单元格,并设置值 HSSFCell cell = hssfRow.createCell(i); cell.setCellValue(cellValues.get(i)); cell.setCellStyle(cellStyle); }}public static
void createExcel(String fileName, List
headCellNames , List
dataList,HttpServletResponse response) throws InvocationTargetException { // 创建一个Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个工作表 HSSFSheet sheet = workbook.createSheet(); sheet.setDefaultRowHeightInPoints(1F); sheet.setDefaultColumnWidth(20); // 设置单元格格式 HSSFCellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.LEFT); // 单元格内容样式 cellStyle.setLocked(true); cellStyle.setWrapText(true); // 字体 HSSFFont font = workbook.createFont(); font.setFontHeightInPoints((short) 13); cellStyle.setFont(font); // 添加表头行 HSSFRow firstRow = sheet.createRow(0); // 添加表头内容 setHeadCellNames(firstRow,cellStyle,headCellNames); for (int i=0;i< dataList.size();i++){ T data = dataList.get(i); Method[] methods = data.getClass().getMethods(); HSSFRow hssfRow = sheet.createRow( i + 1); List
cellValues = Lists.newArrayList(); for (Method temp : methods) try { if (temp.getName().contains("get")){ Object object = temp.invoke(data); if (object==null){ cellValues.add(""); }else { cellValues.add(object.toString()); } } } catch (IllegalAccessException e) { e.printStackTrace(); } ExcelUtil.setCellValue(hssfRow,cellStyle,cellValues); } try { // 自定义输出文件名 String typeName = new String(fileName.getBytes("UTF-8"), "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + typeName); OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } }}复制代码

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

你可能感兴趣的文章
常见黑盒测试方法【转】
查看>>
云备份
查看>>
我的友情链接
查看>>
文本文件操作命令cut wc sort uniq tr
查看>>
在centos7上实现RAID5,并作坏盘测试
查看>>
MYSQL性能查看(命中率,慢查询)
查看>>
什么是CEPH怎样使用CEPH
查看>>
sqlite3开发环境搭建
查看>>
webView loadData 中文乱码问题
查看>>
gcc新版本的安装
查看>>
redhat 6配置163 yum源
查看>>
WINDOWS 7简易版截图
查看>>
运维老鸟谈生产场景如何对linux系统进行分区?
查看>>
通过远控卡连接dell服务器
查看>>
Cisco ise 1.3 升级到 2.0
查看>>
7.XP用户如何设置宽带连接:
查看>>
将Emacs添加到右键快捷菜单中
查看>>
sql分页
查看>>
通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码...
查看>>
androi服务之service
查看>>