我需要访问的Excel工作簿。网。我知道所有关于不同方法(我已经写入他们在一个 博客),我知道利用一个机。净成分将会是最快的。但问题是,它的组成赢了?有人基于他们?我一直在使用Syncfusion XlsIO,但是非常缓慢,一些关键行动(如删除排在工作簿中含有成千上万的命名的范围).

有帮助吗?

解决方案

我没有做过任何适当的基准,但我尝试了几个其他组件,并发现 SpreadsheetGear 是大大快于XlsIO我使用之前。我已经写了一些我的研究结果在这

其他提示

可帮不了你与你最初的问题,但是,你知道,你可以接的Excel文件使用OleDbConnection,因此把它当作一个数据库?然后你可以读的工作表进入一个数据表,执行所有变化你需要的数据在应用程序,然后拯救这一切回到文件的使用OleDbConnection.

是的但我不会公布他们的礼貌到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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top