在asp.net中searchexcel文件的方法

考虑我有一个超过200000行的Excel文件。 什么是最快的方式,可以实现使用c#asp.netsearch此文件中的部分列值。 任何build议。

假设1)你可以caching文件内容(不是太大,文件不会改变等),2)你还没有读取文件的机制,我只读一次文件(在应用程序启动,或延迟加载的需求,或其他)到内存 – 我已经使用,并非常喜欢从http://www.filehelpers.com/ FileHelpers库 – 见他们的Excel示例@ http://www.filehelpers.com/example_exceldatalink html的

作为“在文件中读取”的一部分,您可能还会为稍后的查询创build一些索引。 如果你只关心一列,那么你可以把它全部推到一个HashSet中,例如,你可以快速地做一个Contains。

如果您使用的是Excel自动化API,则无法从ASP.NET访问Excel文件。 这些是为在桌面应用程序中使用而编写的,而不是像ASP.NET这样的服务器应用程序。 他们不会工作,不支持,并可能违反与微软的许可协议。

有第三方库可以从ASP.NET安全地访问Excel文件。 这些不使用自动化API。

您可能要考虑使用“OLE DB for Jet 4.0”连接,您可以通过ADO.NET进行查询。 OLE DB对Excel的访问是通过MDAC组件提供的,该组件是2000年以后的Windows版本的标准。ConnectionStrings.com具有用于连接到Excel的OLE DB连接string ,以及有关在64位环境中使用Jet的信息。

使用EPPLus并将文件读取到DataTable中。 可能需要一些时间,那个文件有点大…