我想知道在 Excel 中读取单元格的最快方法是什么。
我有一个包含 50000 行的 Excel 文件,我想知道如何快速读取它。
我只需要阅读第一列,使用 oledb 连接大约需要 15 秒。
有更快的方法吗?
Thanks
以下是依赖于使用 Microsoft.Office.Interop.Excel 的方法。
请注意:我使用的 Excel 文件只有一列包含 50,000 个条目的数据。
1)用Excel打开文件,另存为csv,然后关闭Excel。
2)使用StreamReader快速读取数据。
3) 在回车换行符上拆分数据并将其添加到字符串列表中。
4)删除我创建的csv文件。
我使用 System.Diagnostics.StopWatch 来计时执行,该函数运行需要 1.5568 秒。
public static List<string> ExcelReader( string fileLocation )
{
Microsoft.Office.Interop.Excel.Application excel = new Application();
Microsoft.Office.Interop.Excel.Workbook workBook =
excel.Workbooks.Open(fileLocation);
workBook.SaveAs(
fileLocation + ".csv",
Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows
);
workBook.Close(true);
excel.Quit();
List<string> valueList = null;
using (StreamReader sr = new StreamReader(fileLocation + ".csv")) {
string content = sr.ReadToEnd();
valueList = new List<string>(
content.Split(
new string[] {"\r\n"},
StringSplitOptions.RemoveEmptyEntries
)
);
}
new FileInfo(fileLocation + ".csv").Delete();
return valueList;
}
资源:
http://www.codeproject.com/Articles/5123/Opening-and-Navigating-Excel-with-C
如何用C#按回车符分割字符串?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)