大数据插入Excel报错处理
2018-06-22 06:57:49来源:未知 阅读 ()
发现问题:
最近运行程序时,发现了一个问题,就是在导出excel时,报了一下错误
分析问题:
原来是由于NPOI这个动态库导致的,然后看了下版本,发现是1.2.5。然后百度了下,发现这个版本的NPOI只支持office2003,二office2003最多支持65536行,找到问题,下面就开始处理问题
解决问题:
从NPOI考虑:继续用这个版本的动态库,只是在插入数据的时候,加个判断,如果数据条数大于65536时,就在创建一个sheet
从office考虑:考虑使用跟高的Office,发现NPOI的2.1.3支持更高版本的office
我的处理方式:
方式一:不换动态库,还是老古董
static void Main(string[] args) { IWorkbook wk=new HSSFWorkbook(); ISheet sheet = wk.CreateSheet("StudentK"); ISheet sheet2 = wk.CreateSheet("TeacherL"); Stopwatch sw =new Stopwatch(); sw.Start(); for (int i = 0; i < 75535; i++) { if (i<=65535) { IRow row = sheet.CreateRow(i); row.CreateCell(0).SetCellValue("Kimisme"); row.CreateCell(1).SetCellValue(i.ToString()); row.CreateCell(2).SetCellValue(DateTime.Now.ToString("s")); } else if (i > 65535) { IRow row = sheet2.CreateRow(i-65536); row.CreateCell(0).SetCellValue("Kimisme"); row.CreateCell(1).SetCellValue(i.ToString()); row.CreateCell(2).SetCellValue(DateTime.Now.ToString("s")); } } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); sw.Restart(); using (FileStream writer =File.OpenWrite("老古董.xls")) { wk.Write(writer); } Console.WriteLine(sw.ElapsedMilliseconds); Console.WriteLine("ok"); Console.ReadKey(); }
成果图
方式二:我就用新东西
static void Main(string[] args) { //改动的地方有两处,这是第一处 IWorkbook wk = new XSSFWorkbook(); ISheet sheet = wk.CreateSheet("FrientS"); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 75535; i++) { IRow row = sheet.CreateRow(i); row.CreateCell(0).SetCellValue("Kimisme"); row.CreateCell(1).SetCellValue(i.ToString()); row.CreateCell(2).SetCellValue(DateTime.Now.ToString("s")); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); sw.Restart(); //这是第二处 using (FileStream writer = File.OpenWrite("新事物.xlsx")) { wk.Write(writer); } Console.WriteLine(sw.ElapsedMilliseconds); Console.WriteLine("ok"); Console.ReadKey(); }
成果图:
最后,感谢面向对象,感谢里氏替换原则,理由如下
- HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls
- XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:本地Git服务器的搭建及使用
下一篇:被混淆的C#类库的反编译
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- MVC数据验证详解 2020-03-14
- .net 数据表格显示控件介绍 2020-03-03
- asp.net实现导出DataTable数据到Word或者Excel的方法 2020-02-28
- 详解ASP.NET数据绑定操作中Repeater控件的用法 2020-01-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash