gpt4 book ai didi

java - 由于某种原因,Apache POI Cellstyle 在第 41 行之后不适用

转载 作者:行者123 更新时间:2023-11-30 06:30:46 24 4
gpt4 key购买 nike

正如您从标题中可以理解的那样,在第 41 行之后,即使通过调试我看到代码运行良好,我的风格也不适用。

我的功能是:

private void writeTable(Table table,Row row,Workbook wb){
CellStyle cellStyle = wb.createCellStyle();
if(row.getRowNum() % 2 == 0) {

cellStyle.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE.getIndex());
cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
cellStyle.setWrapText(true);
cellStyle.setTopBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
cellStyle.setBottomBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setRightBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setLeftBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
}else{

cellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
cellStyle.setWrapText(true);
cellStyle.setTopBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
cellStyle.setBottomBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setRightBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setLeftBorderColor(IndexedColors.GREY_80_PERCENT.getIndex());
}

Cell cell = row.createCell(0);
cell.setCellValue(Table.index);
cell.setCellStyle(cellStyle);


cell = row.createCell(1);
cell.setCellValue(strCorrecter(Table.Name).isEmpty() ? "-" : strCorrecter(Table.Name));
cell.setCellStyle(cellStyle);

cell = row.createCell(2);
cell.setCellValue(strCorrecter(Table.Surname.toString()).isEmpty() ? "-" : strCorrecter(Table.Surname.toString()));
cell.setCellStyle(cellStyle);

cell = row.createCell(3);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(4);
cell.setCellValue(strCorrecter(Table.Age.toString()).isEmpty() ? "-" : strCorrecter(Table.Age.toString()));
cell.setCellStyle(cellStyle);

cell = row.createCell(5);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell =row.createCell(6);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(7);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(8);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(9);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(10);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(11);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(12);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(13);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);

cell = row.createCell(14);
cell.setCellValue("TODO");
cell.setCellStyle(cellStyle);
}

我看到所有行都经过函数开头的 if else 语句。但当我查看 Excel 文件时,它们似乎没有任何属性。这就是我调用这个函数的部分:

 int rowCount = 3;
for (Table table : tableList){
Row row = sheet.createRow(++rowCount);
writeInterlock(table,row,workbook);
}

我不知道发生了什么,因此我们将不胜感激

最佳答案

有一个Excel limit工作簿中唯一单元格格式/单元格样式的最大数量。

因此,不要为每一行创建单元格样式。据我所知,您只需要两种不同的单元格样式。因此,将这两个创建为 cellStyle1cellStyle2 外部方法:

...
CellStyle cellStyle1 = wb.createCellStyle();
//set all the needed settings
CellStyle cellStyle2 = wb.createCellStyle();
//set all the needed settings
...

然后仅在方法中使用这两个:

private void writeTable(Table table,Row row,Workbook wb) {
...
if(row.getRowNum() % 2 == 0) {
//here use cellStyle1
} else {
//here use cellStyle2
}
...
}

关于java - 由于某种原因,Apache POI Cellstyle 在第 41 行之后不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46192166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com