考虑我有一个excel文件> 200000行。使用c#asp.net搜索此文件中的部分列值可以实现的最快方法是什么。任何建议。
答案 0 :(得分:2)
假设1)你可以很好地缓存文件内容(不是太大,文件没有改变等)和2)你还没有读取文件的机制,我只读一次文件(在应用程序启动时,或者根据需要延迟加载到内存中 - 我已经使用并且非常喜欢来自http://www.filehelpers.com/的FileHelpers库 - 请参阅他们的excel示例@ http://www.filehelpers.com/example_exceldatalink.html
作为“在文件中读取”的一部分,您可能还会为以后的查询创建一些索引。如果您只关心一列,您可以将它全部推送到HashSet中,这样您就可以在以后快速进行包含。
答案 1 :(得分:1)
如果您使用的是Excel Automation API,则根本无法从ASP.NET访问Excel文件。这些是为在桌面应用程序中使用而编写的,而不是像ASP.NET这样的服务器应用程序。它们不起作用,不受支持,并且很可能违反与Microsoft的许可协议。
有些第三方库可以安全地从ASP.NET访问Excel文件。这些不使用自动化API。
答案 2 :(得分:1)
您可能需要考虑使用“OLE DB for Jet 4.0”连接,您可以通过ADO.NET进行查询。通过MDAC组件提供对Excel的OLE DB访问,该组件是2000之后的Windows版本的标准.ConnectionStrings.com具有OLE DB connection strings for connecting to Excel,以及using Jet in a 64-bit environment的信息。
答案 3 :(得分:0)
使用EPPLus并将文件读入DataTable。 可能需要一些时间,该文件有点大......