C# Excel導出超出65536行報錯 Invalid row number (65536) outside allowable range (0..65535) ...
C# Excel導出超出65536行報錯 Invalid row number (65536) outside allowable range (0..65535)
一:報錯
Invalid row number (65536) outside allowable range (0..65535)
原因:excel 03的限制就是65536行,超過行數就報錯
二:解決方案-創建多個sheet
public String export(List<Record> list, String f) {
String name = "";
HSSFWorkbook book = new HSSFWorkbook();
HSSFSheet sheet = book.createSheet("stud");
// 聲明一行
HSSFRow row = sheet.createRow(0);
row = sheet.createRow(0);
row.createCell(0).setCellValue("身份");
row.createCell(1).setCellValue("信用");
int index = 0;//記錄額外創建的sheet數量
for (int i = 0; i < list.size(); i++) {
if ((i + 1) % 65535 == 0) {
sheet = book.createSheet("stud" + index);
row = sheet.createRow(0);
row.createCell(0).setCellValue("身份");
row.createCell(1).setCellValue("信用");
index++;
}
row = sheet.createRow((i + 1) - (index * 65535));
// 第四步,創建單元格,並設置值
row.createCell((short) 0).setCellValue(list.get(i).getStr("info"));
row.createCell((short) 1).setCellValue(list.get(i).getStr("score"));
}
// 第六步,將文件存到指定位置
String fileName = "";
try {
fileName = f + "/download/導出.xls";
name = "導出.xls";
File file = new File(fileName);
if (file.exists()) {
file.delete();
}
FileOutputStream fout = new FileOutputStream(fileName);
book.write(fout);
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
return name;
}
————————————————
版權聲明:本文為CSDN博主「m0_37934074」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_37934074/article/details/79409292