博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVAWeb使用POI做导出Excel
阅读量:4325 次
发布时间:2019-06-06

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

一.需要了解的API

  ①HSSFWorkBook  //代表一个Excel文件

  ②HSSFSheet  //代表一个表

  ③HSSFRow  //代表一个表中的某一行

  ④HSSFCell  //代表一个表中的某一行的某一个单元格

  ⑤HSSFCellStyle  //单元格的样式

  ⑥HSSFFont  //字体样式

二.导出过程代码思想

  ①首先创建一个载体(Excel),HSSFWorkBook wb = new HSSFWorkBook();

  ②在Excel创建一个sheet,HSSFSheet sheet = wb.createSheet("sheet name");

  ③在sheet中创建第一行,HSSFRow row = sheet.createRow(0);  注意下标从0开始

  ④在第一行中创建第一个单元格,HSSFCell cell = row.createCell(0); 注意下标是从0开始

  ⑤创建一个HSSFCellStyle style = wb.createStyle();

  ⑥创建一个HSSFFont font = wb.createFont();

  ⑦cell.setCellStyle(style); 单元格添加样式

  ⑧style.setFont(font);  样式中保存字体

三.代码具体实现

public static HSSFWorkbook generateItemExcel(List
ps){ // 创建一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 根据Excel创建一个sheet HSSFSheet sheet = wb.createSheet("立项信息"); // 创建一行 HSSFRow row = sheet.createRow(0); row.setHeight((short) 800); // 创建字体样式 --头 HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setFontName("微软雅黑"); // 创建样式 --头 HSSFCellStyle styleTitle = wb.createCellStyle(); styleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleTitle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleTitle.setFont(font); styleTitle.setBorderTop(HSSFCellStyle.BORDER_THIN); styleTitle.setBorderBottom(HSSFCellStyle.BORDER_THIN); styleTitle.setBorderLeft(HSSFCellStyle.BORDER_THIN); styleTitle.setBorderRight(HSSFCellStyle.BORDER_THIN); //创建字体样式 --体 HSSFFont fontCell = wb.createFont(); font.setFontName("微软雅黑"); //创建样式 --体 HSSFCellStyle styleCell = wb.createCellStyle(); styleCell.setAlignment(HSSFCellStyle.ALIGN_CENTER); styleCell.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); styleCell.setFont(fontCell); styleCell.setBorderTop(HSSFCellStyle.BORDER_THIN); styleCell.setBorderBottom(HSSFCellStyle.BORDER_THIN); styleCell.setBorderLeft(HSSFCellStyle.BORDER_THIN); styleCell.setBorderRight(HSSFCellStyle.BORDER_THIN); // 设置头信息 HSSFCell cell_01 = row.createCell(0); cell_01.setCellStyle(styleTitle); cell_01.setCellValue("项目名称"); HSSFCell cell_02 = row.createCell(1); cell_02.setCellStyle(styleTitle); cell_02.setCellValue("项目编号 "); HSSFCell cell_03 = row.createCell(2); cell_03.setCellStyle(styleTitle); cell_03.setCellValue("ERP项目号 "); HSSFCell cell_04 = row.createCell(3); cell_04.setCellStyle(styleTitle); cell_04.setCellValue("项目经理 "); HSSFCell cell_05 = row.createCell(4); cell_05.setCellStyle(styleTitle); cell_05.setCellValue("销售经理"); HSSFCell cell_06 = row.createCell(5); cell_06.setCellStyle(styleTitle); cell_06.setCellValue("创建时间"); HSSFCell cell_07 = row.createCell(6); cell_07.setCellStyle(styleTitle); cell_07.setCellValue("审核状态"); HSSFCell cell_08 = row.createCell(7); cell_08.setCellStyle(styleTitle); cell_08.setCellValue("项目生命周期状态"); SimpleDateFormat sb = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < ps.size(); i++) { PmItemMaintainMVO p = ps.get(i); HSSFRow r = sheet.createRow(i+1); r.setHeight((short) 400); HSSFCell cell_1 = r.createCell(0); cell_1.setCellStyle(styleCell); cell_1.setCellValue(p.getName()); HSSFCell cell_2 = r.createCell(1); cell_2.setCellStyle(styleCell); cell_2.setCellValue(p.getItemCode()); HSSFCell cell_3 = r.createCell(2); cell_3.setCellStyle(styleCell); cell_3.setCellValue(p.getErpCode()); HSSFCell cell_4 = r.createCell(3); cell_4.setCellStyle(styleCell); cell_4.setCellValue(p.getProjectManagerName()); HSSFCell cell_5 = r.createCell(4); cell_5.setCellStyle(styleCell); cell_5.setCellValue(p.getSalesManagerName()); HSSFCell cell_6 = r.createCell(5); cell_6.setCellStyle(styleCell); cell_6.setCellValue(sb.format(p.getCreated())); HSSFCell cell_7 = r.createCell(6); cell_7.setCellStyle(styleCell); cell_7.setCellValue(p.getStatusName()); HSSFCell cell_8 = r.createCell(7); cell_8.setCellStyle(styleCell); cell_8.setCellValue(p.getProjectStatusName()); } sheet.autoSizeColumn(0); sheet.autoSizeColumn(1); sheet.autoSizeColumn(2); sheet.autoSizeColumn(3); sheet.autoSizeColumn(4); sheet.autoSizeColumn(5); sheet.autoSizeColumn(6); sheet.autoSizeColumn(7); return wb; }
sheet.autoSizeColumn(7); 单元格自动适应大小,注意,这里的自适应有问题。

转载于:https://www.cnblogs.com/duwenlei/p/5099605.html

你可能感兴趣的文章
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>
搜索框键盘抬起事件2
查看>>
阿里百川SDK初始化失败 错误码是203
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>
第四次博客作业
查看>>
C++ GUID和string转化函数【转载】
查看>>
save与persist差别
查看>>
采用传输矩阵法求解光子晶体带隙
查看>>
nginx 生产中配置记录
查看>>
css背景渐变色
查看>>
Coursera machine learning 第二周 quiz 答案 Linear Regression with Multiple Variables
查看>>
可视化与办公自动化学习
查看>>
关于jquery中prev()和next()的用法
查看>>
for循环的类型以及while循环
查看>>
enote笔记语言(2)(ver0.2)
查看>>
Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1
查看>>
seajs的使用--主要了解模块化
查看>>
Noip2018游记
查看>>