@Test
public void testDownload() throws IOException {
Cell cell;
Row row;
Type type = new TypeToken<List<Person>>() {
}.getType();
List<Person> personList = new Gson().fromJson(new String(Files.readAllBytes(Paths.get("C:\\Users\\K22010012\\Desktop\\finalexam\\demo\\src\\main\\resources\\xinxi.json"))), type);
Map<String, List<Person>> collect = personList.stream().collect(Collectors.groupingBy(x -> String.format("%s_%s", x.getAge(), x.getGrade())));
String fileName = "C:\\Users\\K22010012\\Desktop\\abc.xlsx";
SXSSFWorkbook wb = new SXSSFWorkbook(10);
FileOutputStream fileOS = new FileOutputStream(fileName);
SXSSFSheet ws = wb.createSheet("ss");
int Col = 0;
int rowNum = 0;
SXSSFRow row1 = ws.createRow(rowNum++);
for (int i = 0; i < 3; i++) {
row1.createCell(i);
}
row1.getCell(Col++).setCellValue("name");
row1.getCell(Col++).setCellValue("age");
row1.getCell(Col++).setCellValue("grade");
ws.trackAllColumnsForAutoSizing();
Font font = wb.createFont();
for (String key : collect.keySet()) {
XSSFCellStyle style=wb.getXSSFWorkbook().createCellStyle();
for (int i=0;i< collect.get(key).size();i++) {
int intCol = 0;
row = ws.createRow(rowNum++);
if(i!=0 && intCol!=1) {
font.setColor(IndexedColors.WHITE.getIndex());
style.setFont(font);
}
setCellValue(style,collect.get(key).get(i).getName(),row,intCol++);
setCellValue(style,String.valueOf(collect.get(key).get(i).getAge()),row,intCol++);
setCellValue(style,collect.get(key).get(i).getGrade(),row,intCol++);
ws.trackAllColumnsForAutoSizing();
}
for (int c = 0; c < 6; c++) {
ws.autoSizeColumn(c);
}
ws.createFreezePane(0, 1);
wb.write(fileOS);
}
}
public void setCellValue(CellStyle valueCellFormat, @Nullable String value, Row row, int intCol) {
Cell cell = this.createStyleCell(valueCellFormat, row, intCol);
if (value != null) {
cell.setCellValue(value);
}
}
private Cell createStyleCell(CellStyle valueCellFormat, Row row, int intCol) {
Cell cell = row.createCell(intCol);
cell.setCellStyle(valueCellFormat);
return cell;
}
使用到的Json檔
[
{
"name": "陳珍珍",
"age": 11,
"grade": "2班"
},
{
"name": "咕嚕泡泡",
"age": 11,
"grade": "2班"
},
{
"name": "袁弘",
"age": 11,
"grade": "2班"
}
]
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/963157450366121.png "#left")
但是按照自己寫的程式,所有數據的顔色都是白色的 好像是自己做的判斷錯了
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/615105450366156.png "#left")
Java導出Excel
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 於黾 2022-09-13 17:08关注
你只定义了一个font对象,所以你把它设置成白色之后它就一直是白色了啊
你也没必要在循环里不断创建样式,样式创建过多会报错的
实际上你只需要创建两个font和style,然后判断一下到底使用哪种样式就行了本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
- ¥20 pcf8563时钟芯片不启振
- ¥20 pip2.40更新pip2.43时报错
- ¥15 换yum源但仍然用不了httpd
- ¥50 C# 使用DEVMOD设置打印机首选项
- ¥15 麒麟V10 arm安装gdal
- ¥20 OPENVPN连接问题
- ¥15 flask实现搜索框访问数据库