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 发布