Skip to content
This repository was archived by the owner on Sep 4, 2025. It is now read-only.

Commit 0bfcd8a

Browse files
author
尤志强
committed
fix: 空指针异常
1 parent 2a494ed commit 0bfcd8a

File tree

2 files changed

+64
-1
lines changed
  • easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv
  • easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/rare

2 files changed

+64
-1
lines changed

easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,12 @@ public void removeRow(Row row) {
136136

137137
@Override
138138
public Row getRow(int rownum) {
139+
if (rowCache == null) {
140+
return null;
141+
}
139142
int actualRowIndex = rownum - (lastRowIndex - rowCache.size()) - 1;
140143
if (actualRowIndex < 0 || actualRowIndex > rowCache.size() - 1) {
141-
throw new UnsupportedOperationException("The current data does not exist or has been flushed to disk\n.");
144+
return null;
142145
}
143146
return rowCache.get(actualRowIndex);
144147
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.alibaba.easyexcel.test.demo.rare;
2+
3+
import com.alibaba.easyexcel.test.util.TestFileUtil;
4+
import com.alibaba.excel.EasyExcel;
5+
import com.alibaba.excel.ExcelWriter;
6+
import com.alibaba.excel.write.handler.SheetWriteHandler;
7+
import com.alibaba.excel.write.metadata.WriteSheet;
8+
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
9+
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
10+
import lombok.extern.slf4j.Slf4j;
11+
import org.apache.poi.ss.usermodel.Sheet;
12+
import org.junit.jupiter.api.Test;
13+
14+
import org.apache.poi.ss.usermodel.Row;
15+
16+
import org.apache.poi.ss.usermodel.Cell;
17+
18+
import java.util.Collections;
19+
20+
/**
21+
* @author youzhiqiang
22+
* @date 2024/6/14
23+
*/
24+
@Slf4j
25+
public class CsvTest {
26+
27+
28+
@Test
29+
public void customer() {
30+
String fileName = TestFileUtil.getPath() + "sheetWriteHandlerForCsv" + System.currentTimeMillis() + ".csv";
31+
// 这里 需要指定写用哪个class去写
32+
ExcelWriter excelWriter = EasyExcel.write(fileName)
33+
.registerWriteHandler(new SheetWriteHandler() {
34+
@Override
35+
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
36+
Sheet sheet = writeSheetHolder.getSheet();
37+
38+
for (int column = 0; column < 10; column++) {
39+
for (int rowIndex = 0; rowIndex < 20; rowIndex++) {
40+
Row row = sheet.getRow(rowIndex);
41+
if (row == null) {
42+
row = sheet.createRow(rowIndex);
43+
}
44+
45+
Cell cell = row.getCell(column);
46+
if (cell == null) {
47+
cell = row.createCell(column);
48+
}
49+
cell.setCellValue("测试" + column + ":" + rowIndex);
50+
}
51+
}
52+
}
53+
})
54+
.build();
55+
WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
56+
excelWriter.write(Collections.emptyList(), writeSheet);
57+
excelWriter.finish();
58+
}
59+
60+
}

0 commit comments

Comments
 (0)