SpreadsheetGear WorkbookView中可以保存的数据量是否有限制?
我有一个应用程序,从Excel的数据表中,并将其导入到我的embedded式SpreadsheetGear.WorkbookView
。 我意识到在Excel中工作表的大小的限制,但我想知道如果Excel能够处理大于SpreadsheetGear
的数据集。 有没有人曾经遇到过这个?
可靠的人
我刚刚在一个.NET 4.5 x64应用程序中运行的SpreadsheetGear 2012 for .NET以及运行在Windows 8 x64上的超频Core i7-980X的Excel 2013 x64 RTM进行了testing。
我使用公式“= RAND()”创build了一个包含1,000万个公式(1,000,000行和10列)的工作簿。
Excel 2013在20.18秒内创build了工作簿,使用了795MB的RAM,计算时间为0.39秒。
SpreadsheetGear 2012在0.42秒内创build了工作簿,使用了153MB的RAM,并在0.09秒内计算出来。
SpreadsheetGear仅受内存数量的限制,并且显然比Excel 2013更有效,因为它涉及内存使用情况,更不用说SpreadsheetGear 2012比Excel 2013创build和计算大型工作簿的事实 – 至less在这种情况下。
您可以在这里下载SpreadsheetGear for .NET的免费评估。
免责声明:我自己的SpreadsheetGear LLC。
这是我为SpreadsheetGear运行的代码:
using System; using SpreadsheetGear; namespace SpreadsheetGearMemTest { class Program { static void Test(IWorkbook workbook, int rows, int cols) { var worksheet = workbook.Worksheets[0]; var cells = worksheet.Cells; var timer = System.Diagnostics.Stopwatch.StartNew(); var startMem = System.GC.GetTotalMemory(true); cells[0, 0, rows - 1, cols - 1].Formula = "=RAND()"; timer.Stop(); var memUsed = System.GC.GetTotalMemory(true) - startMem; var calcTimer = System.Diagnostics.Stopwatch.StartNew(); workbook.WorkbookSet.Calculate(); Console.WriteLine("Creating took {0} seconds and {1}MB, calc took {2} seconds.", timer.Elapsed.TotalSeconds, memUsed / (1024.0 * 1024.0), calcTimer.Elapsed.TotalSeconds); workbook.Close(); } static void Main(string[] args) { // Get the code JITed. Test(Factory.GetWorkbook(), 100, 10); // Do the test. Test(Factory.GetWorkbook(), 1000000, 10); } } }