【发布时间】:2011-11-05 01:33:46
【问题描述】:
我的 C# 应用程序从 excel 文件中获取大量数据并对其进行处理,然后将其写回文件中。
问题是从 Excel 文件加载数据时,需要一些时间(大约 7000 个 Excel 字段需要 30 秒)
我想让它更快,有什么方法可以让它在相当长的时间内更快?
我用来获取数据的代码是:
streamReader = new StreamReader(@"ExcelPath.txt");
string path = streamReader.ReadLine();
//An Excel Application ==(contains)==> [Many] Excel WorkBook ==(contains)==>[Many] Excel WorkSheets==(contains)==>[Many] Ranges
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook myworkbook = excelapp.Workbooks.Open(path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true);
Microsoft.Office.Interop.Excel.Sheets myworksheets = myworkbook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet myworksheet =myworksheets.get_Item(1);
Microsoft.Office.Interop.Excel.Range range = myworksheet.UsedRange;
string[] data = new string[range.Rows.Count];
int start = 0;
for (start = 3; start < range.Rows.Count; start++)
{
Microsoft.Office.Interop.Excel.Range myrange = myworksheet.get_Range("O" + start.ToString(), System.Reflection.Missing.Value);
data[start] = myrange.Text;
}
【问题讨论】:
-
哪个版本的 Excel?查看您如何从文本文件中读取路径,您是否只运行了一个 Excel 实例?它不在服务器上运行是吗?查看此 KB 以查看其他问题的 support.microsoft.com/kb/257757 - 否则 Range 方法与 Cell 是 WTG
-
@JeremyThompson Excel 2010,是的,一个 Excel 实例,不,不在服务器上...
标签: c# .net performance excel optimization