德媒:勒沃库森签下埃尔莱因一天后,立刻外租至德乙科特布斯,德甲,卢卡,德媒,德乙,科特布斯,埃尔莱因,霍芬海姆,勒沃库森队
2026-07-30

软件开发过程中,经常需要将数据保存为.xls或.xlsx文件。之前发现微软提供的Microsoft.Office.Interop.Excel效率及其底下,所以搜集了另外4个可以独立读写Excel的开源类库,对写操作进行对比。
测试平台:
主板
MSI E7525 Master-S2 (MS-9151)
操作系统
Microsoft Windows 7 Ultimate SP1 (x86)
测试用的5个类库:
测试代号
类库版本
运行时版本
网址/地址
ExcelPackage
1.0.0.1
2.0.50727
http://excelpackage.codeplex.com/
NPOI
1.2.4.0
4.0.30319
http://code.google.com/p/npoi/
在测试开始之前,先将一个366行8列的数据集读入内存,为了避免数据存入硬盘等操作产生的误差,测试仅记录了将数据循环写入数据表中单元格所消耗的时间,为了消除可能的误差,每次操作之间设计了一个30秒的停顿,代码框架如下:
1: for (int s = 0; s < 51; s++)
2: {
3: System.Diagnostics.Stopwatch MyWatch = new System.Diagnostics.Stopwatch();
4: //初始化
5: MyWatch.Start();
6: for (int i = 0; i < rows; i++)
7: {
8: for (int j = 0; j < columns; j++)
9: {
10: //写入单元格数据;
11: }
12: }
13: MyWatch.Stop();西布朗赛事预测
14: //垃圾回收;
15: textBox.AppendText(MyWatch.ElapsedMilliseconds.ToString() + "
");
16: System.Threading.Thread.Sleep(30000);
17: }
取重复测试51次,首次运行一般耗时较长,未计算在内,其余的计算平均值,结果如下表所示:
光从效率上讲,ExcelLibrary以平均高出第二名将近3倍,领先微软自己的Excel类库2700多倍的速度遥遥领先!但是兼容性和导出文件大小还是需要关注的。测试用的数据集粘贴在Excel 2010空文件中保存后,.xls文件大小为57KB,.xlsx文件为26KB,导出后的文件大小却不相同。细节如下图:
综合上述,如果单需要导出.xlsx格式,EPPlus显然是最佳选择,导出速度在所有支持07-10格式的类库中最快,生成的文件也最小;如果单需要导出.xls格式,ExcelLibrary是首选,速度遥遥领先,文件大小也有略有优势;就算同时需要导出两种格式,MS Excel依然不是首选,应为速度实在是慢到令人发指……需要注意的是,大于65536行的数据.xls格式不支持,必须使用.xlsx。
转载原地址:http://blog.wwery.cn/?p=210
德媒:勒沃库森签下埃尔莱因一天后,立刻外租至德乙科特布斯,德甲,卢卡,德媒,德乙,科特布斯,埃尔莱因,霍芬海姆,勒沃库森队
2026-07-30
德天空:迪奥曼德已经准备好接受皇马体检,只待莱比锡放行,体检,德国,皇马,莱比锡,罗马诺,德天空,迪奥曼德,天空体育,皇家马德里
2026-07-30
德天空:多特与亨克达协议签卡雷察斯,转会费总额3200万欧+二转
德天空:多特与亨克达协议签卡雷察斯,转会费总额3200万欧+二转,亨克队,转会费,德天空,亨克达,卡雷察斯,多特蒙德队
2026-07-30
07月16日 NBA夏季联赛 魔术vs76人 全场录像回放
07月15日 NBA夏季联赛 国王vs篮网 全场录像回放
07月14日 NBA夏季联赛 太阳vs雄鹿 全场录像回放
07月19日 NBA夏季联赛 步行者vs鹈鹕 全场录像回放
07月19日 NBA夏季联赛 勇士vs湖人 全场录像回放
07月19日 NBA夏季联赛 老鹰vs奇才 全场录像回放
07月19日 NBA夏季联赛 火箭vs灰熊 全场录像回放
07月18日 WNBA常规赛 西雅图风暴vs印第安纳狂热 全场录像回放
07月18日 NBA夏季联赛 森林狼vs快船 全场录像回放
07月18日 NBA夏季联赛 开拓者vs爵士 全场录像回放