public static void writeExcel(ExcelParam excelParam) throws IOException {
//创建一个工作薄
Workbook wb = new HSSFWorkbook();
//创建一个sheet
Sheet sheet = wb.createSheet("sheet1");
// 设置字体
Font font = wb.createFont();
font.setColor(HSSFFont.COLOR_NORMAL); //字体颜色
font.setFontName("微软雅黑"); //字体
font.setFontHeightInPoints((short)18);
// font.setItalic(true1); //是否使用斜体
// font.setStrikeout(true); //是否使用划线
// 设置单元格类型
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN);//左边框
cellStyle.setBorderTop(BorderStyle.THIN);//上边框
cellStyle.setBorderRight(BorderStyle.THIN);//右边框
cellStyle.setFont(font);
cellStyle.setAlignment(HorizontalAlignment.CENTER); //水平布局:居中
//设置单元格内容垂直对其方式为居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// cellStyle.setWrapText(true); // 自动换行
//创建一行标题
Row rowHead = sheet.createRow(0);
//填充标题内容
//向表头填充数据
Font fh = wb.createFont();
fh.setColor(HSSFFont.COLOR_RED); //字体颜色
fh.setFontName("黑体"); //字体
fh.setBold(true);
fh.setFontHeightInPoints((short)22);
CellStyle sh = wb.createCellStyle();
sh.setBorderBottom(BorderStyle.THIN); //下边框
sh.setBorderLeft(BorderStyle.THIN);//左边框
sh.setBorderTop(BorderStyle.THIN);//上边框
sh.setBorderRight(BorderStyle.THIN);//右边框
sh.setFont(fh);
sh.setAlignment(HorizontalAlignment.CENTER); //水平布局:居中
//设置单元格内容垂直对其方式为居中
sh.setVerticalAlignment(VerticalAlignment.CENTER);
for (int i = 0; i < excelParam.getHead().size(); i++) {
// 合并单元格第一行
sheet.addMergedRegion(new CellRangeAddress(0,0,0,excelParam.getData().get(0).size()-1));
Cell cell = rowHead.createCell(i);
cell.setCellValue(excelParam.getHead().get(i));
cell.setCellStyle(sh);
cell.setCellType(STRING);
}
//表格主体 解析list
//表格内容
for (int i = 0; i < excelParam.getData().size(); i++) { //行数
Row row = sheet.createRow(i + 1);
for (int j = 0; j < excelParam.getData().get(i).size(); j++) { //列数
// 列自动适应
sheet.autoSizeColumn(j);
Cell cell = row.createCell(j);
cell.setCellValue(excelParam.getData().get(i).get(j));
cell.setCellStyle(cellStyle);
cell.setCellType(STRING);
}
}
//判断是否存在目录.
File file = new File(excelParam.getFilePath());
if (!file.getParentFile().exists()) {
// 不存在则创
file.mkdirs();
}
// 输出Excel文件1
FileOutputStream output = new FileOutputStream(file);
wb.write(output);//写入磁盘
output.close();
}
EXCEL生成勿忘我(字体颜色,对齐,大小,合并单元格)
最新推荐文章于 2023-03-30 16:29:42 发布
本文详细介绍了使用Java进行Excel文件导出的过程,包括工作簿、sheet、字体、样式设置,以及如何填充数据到单元格,并调整列宽。通过具体代码示例,展示了如何创建和设置单元格样式,设置字体、边框、对齐方式等属性,以及如何处理标题和数据行。
251

被折叠的 条评论
为什么被折叠?



