C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)

摘要:
Stringf){Stringname=“”;HSSFSheetsheet=book.createSheet(“研究”);intindex=0;row.createCell((短)1).setCellValue(list.get(i).getStr(“score”);try{fileName=f+“/download/export.xls”;name=“export.xls”;

  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

免责声明:文章转载自《C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LNMP无法删除或更改权限,显示:rm: cannot remove `.user.ini': Operation not permitted(转)C#模拟键盘鼠标事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

postgresql 查询表结构

sql查询 SELECT A.attnum, ( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid AND objsubid = A.attnum ) AS descript, A.attname, ( select typname from p...

导出数据到excel

第一种方式  :需引用 Microsoft.Office.Interop.Excel,安装office        public bool ExportToExcel()        { Microsoft.Office.Interop.Excel.Application xlApp; try { xlApp = new Microsoft.Offi...

java随机生成字符串和校验

首先给大家推荐一个可以在线运行JAVA程序的网站:https://tool.lu/coderunner/ 然后可以运行下我的程序代码,我的代码运行效果如下图:   接下来定义字符串 1 String a = "0123456789"; // 数字 2 String b = "abcdefghijklmnopqrstu...

java字符串比较是否都可直接使用==?

java字符串比较,两个字符串相不相等,直接用==来判断可以吗?或者判断两个字符串不相等,直接用!=? 不能 两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的...

WPF数据绑定(四)

1、DataTemplate 上一部分已经讲了itemsource绑定,功能虽然实现了但是还是有点土,内容太单一了,如果能够修改listbox的界面,让更多的元素展示出来就完美了。 DataTemplate就可以实现这个。 1 <TabItem Header="DataTemplate"> 2...

easyui改写datetimebox实现年和月切换

话不多少,直接将代码贴上(直接做成控件了,复制成comboTime.js即可) /* 分析周期与时间组合控件---- 有分析周期下拉框:"options": "data: [{ text: '月', value: 'm', limit: 0 }, { text: '季', value: 'q', limit: 2 }, { text: '年', valu...