// 第一步 创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook workbook = new HSSFWorkbook();
// 第二步,在workbook中添加一个sheet,建立新的sheet对象(excel的表单)
HSSFSheet sheet = workbook.createSheet("制定表");
// 单元格高度
sheet.setDefaultRowHeightInPoints(26);
// 设置单个列宽
sheet.setColumnWidth(0, 256 * 18 + 184);
sheet.setColumnWidth(1, 256 * 36 + 184);
// sheet.setDefaultColumnWidth(25);//设置全部列宽
// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow row1 = sheet.createRow(0);
// --------第一行 表头格式设置:
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER); // 水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中
// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
HSSFCell cell = row1.createCell(0);
// 设置单元格内容
cell.setCellValue("制定表");
// 设置单元格样式居中
cell.setCellStyle(cellStyle);
// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4));
// 在sheet里创建第二行
HSSFRow row2 = sheet.createRow(1);
// 第二行开始,每列水平居中
row2.createCell(1).getCellStyle().setWrapText(true);
// 水平居中
row2.createCell(1).getCellStyle().setAlignment(HorizontalAlignment.CENTER);
// 垂直居中
row2.createCell(1).getCellStyle().setVerticalAlignment(VerticalAlignment.CENTER);
// 创建单元格并设置单元格内容
row2.createCell(0).setCellValue("编号");
row2.createCell(1).setCellValue("名称");
// 数据 根据条件查询数据
List<LtcMilestonePmDateVo> list = ltcProjectMilestoneMapper.getMilestonePmDate();
// 判断要导出的数据是否为空,不为空遍历集合
if (null != list) {
int j = 2;
for (int i = 0; i < list.size(); i++) {
// 在sheet里创建第三行,按照表头,添加数据
HSSFRow row = sheet.createRow(j);
// 创建单元格
// 第一个单元格
row.createCell(0).setCellValue(list.get(i).getLeadNo());
// 第二个单元格
row.createCell(1).setCellValue(list.get(i).getName());
row.createCell(2).setCellValue(list.get(i).getDutyMain());
row.createCell(3).setCellValue(list.get(i).getUserName());
row.createCell(4).setCellValue("是");
j++;
}
}
// 最后输出Excel文件
try {
File file=new File("C:\\Users\\Desktop\\xxx.xlsx");
OutputStream fileOutputStream = new FileOutputStream(file);
workbook.write(fileOutputStream);// 把相应的Excel 工作簿存盘 把文件写入流中输出
fileOutputStream.close();// 关闭输出流
} catch (IOException e) {
e.printStackTrace();
}
}