我需要从.Net访问Excel工作簿。我知道所有关于这样做的不同方式(我已经将它们写入了blog post),并且我知道使用本机.Net组件将会是最快的。但问题是,哪些组件获胜?有人以他们为基准吗?我一直在使用Syncfusion XlsIO,但对于某些关键操作(例如删除包含数千个命名范围的工作簿中的行),速度非常慢。有没有人有.Net Excel IO组件基准?
5
A
回答
5
我还没有做任何适当的基准,但我尝试了其他几个组件,发现SpreadsheetGear比我以前使用的XlsIO快得多。我已经写了一些我的发现在这post
1
无法帮助您解决原始问题,但是您是否知道可以使用OleDbConnection访问Excel文件,并将其视为数据库?然后,您可以将工作表读入DataTable,对应用程序中的数据执行所需的所有更改,然后使用OleDbConnection将其全部保存回文件。
0
是的,但我不会发布他们出于礼节Syncfusion(他们要求你不要发布基准),因为我不是一个有经验的测试人员,所以我的测试可能有些瑕疵,但主要是因为你实际的基准测试对谁的胜利和多少产生了巨大的影响。
我拿了他们的一个“性能”例子,并在EPPlus中添加了相同的例程来比较它们。 XLSIO的插入速度快了15%左右,这取决于行/列的比例(我试了几次),内存使用看起来非常相似。当我添加一个例程后,在添加完所有行之后,每隔10行删除一行,然后插入一行2行以上的新行 - 在这种情况下,XLSIO显着变慢。
通用的基准测试对你来说是非常没用的。您需要在您使用的特定场景中互相尝试。
我一直在使用EPPlus几年,表现一直很好,我不记得大声嚷嚷它。
更值得您考虑的是功能,支持(根据我的经验,Syncfusion已经很好),文档,如果重要的话可以访问源代码,重要的是 - API对您有多大的意义,语法可能完全不同。例如。命名样式
XLSIO
headerStyle.BeginUpdate();
workbook.SetPaletteColor(8, System.Drawing.Color.FromArgb(255, 174, 33));
headerStyle.Color = System.Drawing.Color.FromArgb(255, 174, 33);
headerStyle.Font.Bold = true;
headerStyle.Borders[ExcelBordersIndex.EdgeLeft] .LineStyle = ExcelLineStyle.Thin;
headerStyle.Borders[ExcelBordersIndex.EdgeRight] .LineStyle = ExcelLineStyle.Thin;
headerStyle.Borders[ExcelBordersIndex.EdgeTop] .LineStyle = ExcelLineStyle.Thin;
headerStyle.Borders[ExcelBordersIndex.EdgeBottom].LineStyle = ExcelLineStyle.Thin;
headerStyle.EndUpdate();
EPPlus
ExcelNamedStyleXml headerStyle = xlPackage.Workbook.Styles.CreateNamedStyle("HeaderStyle");
headerStyle.Style.Fill.PatternType = ExcelFillStyle.Solid; // <== needed or BackgroundColor throws an exception
headerStyle.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.FromArgb(255, 174, 33));
headerStyle.Style.Font.Bold = true;
headerStyle.Style.Border.Left.Style = ExcelBorderStyle.Thin;
headerStyle.Style.Border.Right.Style = ExcelBorderStyle.Thin;
headerStyle.Style.Border.Top.Style = ExcelBorderStyle.Thin;
headerStyle.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
相关问题
- 1. 有没有Javers的基准?
- 2. 有没有人试过FastReport .Net之前?
- 3. .net - excel到html没有excel安装
- 4. 有没有人知道任何软件分类标准?
- 5. QML的WebView组件没有准备好
- 6. .NET标准库的.NET Core库有没有优势?
- 7. 有没有人使用ODBC连接从Excel文件到Powerpivot?
- 8. 有没有人更改Visual Studio默认支撑样式? - 有没有标准?
- 9. 有没有人有幸为Mapnik编译.NET绑定?
- 10. 风格组件“CSS”没有定义没有民主基金
- 11. 有没有人知道是否有Project Natal的.NET API?
- 12. 有没有人有.NET RIA DomainDataService和POCO的成功?
- 13. 有没有人用CakePHP电子邮件组件设置DKIM?
- 14. 有没有办法挂钩VUE组件准备(初始化)
- 15. 边框和基线都没有对准
- 16. 有没有Solr-Camel组件?
- 17. 有没有人使用GoogleData?
- 18. 有没有人有基于WebQuarters开发网站的经验?
- 19. 有没有人发布过更强大的BitArray for .NET?
- 20. .NET - 有没有翻转时钟控件?
- 21. 有没有人使用Ribbon控件?
- 22. 有没有.NET的文档管理组件(商业或开源)?
- 23. .NET程序集有没有改变?
- 24. 有没有人还在使用IBM的SanFrancisco组件框架?
- 25. 有没有人知道很好的delphi对接组件?
- 26. 有没有人在Amazon Elastic Beanstalk上为.NET运行mono?
- 27. 有没有人在.NET中使用类型化的数据集?
- 28. 有没有办法在angular2中使用基于bootstrap的组件?
- 29. 有没有人为Lantronix的CprIf.dll编写.NET封装?
- 30. .NET Core有没有Rx.NET?
保罗,谢谢。我意识到这一点(我应该把它包括在我的博客文章中)。但在这种情况下,它并不是我真正需要的数据。这就像Cell风格和格式化等。Sam – 2008-08-18 13:10:42