GradeList 是字符串的 ArrayList,其值为“80”、“81”...“85”
for(int y = 0; y < gradeList.size(); y++){
HSSFRow row1 = worksheet.createRow((short) 1);//1
HSSFCell cell1 =row1.createCell((short) y+1);//2
cell1.setCellValue("" + gradeList.get(y));//3
HSSFCellStyle cellStylei = workbook.createCellStyle();//4
cellStylei.setFillForegroundColor(HSSFColor.GREEN.index);
cell1.setCellStyle(cellStylei);//6
}
代码输出:_、_、_、_、_、85。预期输出:80、81、82、83、84、85。
更改代码后
HSSFRow row1 = worksheet.createRow((short) 1);//1
HSSFCell cell1;
for(int y = 0; y < gradeList.size(); y++){
cell1 = row1.createCell((short) y+1);//2
cell1.setCellValue("" + gradeList.get(y));//3
}
HSSFCellStyle cellStylei = workbook.createCellStyle();//4
cellStylei.setFillForegroundColor(HSSFColor.GREEN.index);//5
该代码按预期打印 80、81、82、83、84 和 85,但使用前六行代码只打印 85。有人可以向我解释为什么第一个错误或不起作用,如果可能的话,你也可以还请解释第 4,5 和 6 行的作用。
问题是,在您的第一个代码第 1 行中,您为每个gradeList
元素创建了相同的行,因此您会覆盖为元素 80 创建的行,以及用元素 81 创建的行,等等,因为您只有最后一个。
如果您修改第一个代码并为每个gradeList
元素创建不同的行,您可以看到添加了所有值,例如:
HSSFRow row1 = sheet.createRow((short) y +1);//1
在第 4 行中,您正在创建要应用于单元格的样式:
HSSFCellStyle cellStylei = workbook.createCellStyle();//4
在第 5 行中,您将前景色填充颜色添加为绿色
cellStylei.setFillForegroundColor(HSSFColor.GREEN.index);//5
在第 6 行,您将样式添加到您的单元格
cell1.setCellStyle(cellStylei);//6
您可以在官方 poi 文档中的链接和一些示例中找到有关不同样式的更多信息
希望这可以帮到你。
谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句