C# 读取 Excel 工作簿、OLEDB 或 Excel Interop?
我需要阅读一本包含 2 个工作表的 Excel 工作簿,其中有超过 60,000 条记录。该应用程序是 ASP.Net 应用程序,因此性能很重要。
我应该采取哪种方法?我应该使用 Microsoft.Office.Interop.Excel 执行此操作还是应该使用 ADO.Net 中的 OLEDB 执行此操作?
最好的方法是什么?
I need to read an Excel work book with 2 sheet which have more than 60,000 records. The application is an ASP.Net application so the performance matters.
Which approach should I take? Should I do it using Microsoft.Office.Interop.Excel or should I do it using OLEDB in ADO.Net?
What is the best approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
将书籍拆分为两个工作表文件,将它们转换为 CSV(逗号分隔值)形式,并将它们作为文本处理。
我认为,如果您只需要读取数据而不关心格式、合并单元格、公式等,那么这将是性能方面的最佳方法。
Split the book into two worksheet files, convert them to CSV (comma-separated value) form, and process them as text.
I think that would be the best approach perfomance-wise, if you only need to read the data and do not care about formatting, merged cells, formulae etc.
我总是在 ADO.Net 中使用 OLEDB。
最好的方法是什么,我不知道。但最简单的方法就是像 Kaerber 所说的那样,将其读取为 2 个
.csv
文件。然后您就可以像读取
.txt
文件一样读取它,而无需“花哨”的库。I used always OLEDB in ADO.Net for it.
What the best aproach is, I don't know. But the easiest is like Kaerber says, to read it as 2
.csv
files.Then you can read it like you read a
.txt
file without 'fancy' libraries.修改Excel时使用OLEDB进行查询(读取)和Interop。
Use OLEDB for querying (reading) and Interop when modifying Excel.
您可以考虑使用:
gemboxsoftware.com/spreadsheet
或免费替代方案:
http://npoi.codeplex.com/
You can consider using:
gemboxsoftware.com/spreadsheet
or the free alternative:
http://npoi.codeplex.com/