C# 在asp.net中搜索excel文件的方法

C# 在asp.net中搜索excel文件的方法,c#,asp.net,excel,search,C#,Asp.net,Excel,Search,假设我有一个excel文件>200000行。使用c#asp.net搜索此文件中的部分列值的最快方法是什么。任何建议。假设1)您可以很好地缓存文件内容(不要太大,文件不会更改,等等),2)您还没有读取文件的机制,我只需读取一次文件(在应用程序启动时,或按需延迟加载,或其他任何情况)进入内存-我使用过并且非常喜欢来自的FileHelpers LIB-参见他们的excel示例@ 作为“在文件中读取”的一部分,您可能还会为后面的查询创建一些索引。例如,如果您只关心一列,您可以将其全部放入哈希集中,以便以

假设我有一个excel文件>200000行。使用c#asp.net搜索此文件中的部分列值的最快方法是什么。任何建议。

假设1)您可以很好地缓存文件内容(不要太大,文件不会更改,等等),2)您还没有读取文件的机制,我只需读取一次文件(在应用程序启动时,或按需延迟加载,或其他任何情况)进入内存-我使用过并且非常喜欢来自的FileHelpers LIB-参见他们的excel示例@

作为“在文件中读取”的一部分,您可能还会为后面的查询创建一些索引。例如,如果您只关心一列,您可以将其全部放入哈希集中,以便以后可以快速执行包含操作。

假设1)您可以很好地缓存文件内容(不会太大,文件不会更改等);2)您还没有读取文件的机制,我只需读取一次文件(在应用程序启动时,或按需延迟加载,或其他)到内存中-我使用过并且非常喜欢来自的FileHelpers LIB-请参见他们的excel示例@


作为“读入文件”的一部分,您可能还会为以后的查询创建一些索引。例如,如果您只关心一列,您可以将其全部推送到哈希集中,以便以后可以快速执行包含操作。

如果您使用Excel Automation API,则根本无法从ASP.NET访问Excel文件。这些是为在桌面应用程序中使用而编写,而不是在ASP.NET之类的服务器应用程序中使用。这些应用程序不起作用,不受支持,并且很可能会违反您与Microsoft的许可协议


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

如果您使用Excel自动化API,则根本无法从ASP.NET访问Excel文件。这些库是为在桌面应用程序中使用而编写的,而不是在ASP.NET之类的服务器应用程序中使用。它们将不起作用,不是吗支持,并且很可能违反您与Microsoft的许可协议


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

< p>您可能需要考虑使用“面向JET 4的OLE DB”。通过ADO.NET.OLE DB访问Excel,可以通过MADAC组件来提供连接,该组件在Windows 2000之后的版本上是标准的。连接,您可以通过ADO.NET查询。OLE DB对Excel的访问是通过MDAC组件提供的,该组件在2000年以后的Windows版本中是标准的。ConnectionString.com有,以及有关的信息。

使用EPPLus并将文件读入数据表。
可能需要一些时间,该文件有点大…

使用ePlus并将该文件读取到数据表中。
可能需要一些时间,该文件有点大…

您可以详细说明一下吗?文件是否会更改或是否可以将其缓存在内存中?您是否已经有了读取文件的特定方法?您可以详细说明一下吗?文件是否会更改或是否可以将其缓存在内存中?您是否已经有了读取文件的特定方法?不要忘记使用ADO.NET进行OLEDB查询。虽然可能不会更快,但它们也是一个选项。@tech:注意我说的“使用Excel自动化API”OLEDB只需要Jet 4.0,它包含在Microsoft MDAC中;它不需要安装Excel,也不使用Excel Automation。默认情况下,MDAC安装在Windows 2000及更高版本上,我猜想它也安装在Windows(2003、2008)的服务器版本上@tech:注意,我说过“使用Excel Automation API”不要忘记使用ADO.NET进行OLEDB查询。虽然可能不会更快,但它们也是一个选项。@tech:注意,我说过,“使用Excel自动化API”OLEDB只需要Jet 4.0,它包含在Microsoft MDAC中;它不需要安装Excel,也不使用Excel Automation。默认情况下,MDAC安装在Windows 2000及更高版本上,我猜想它也安装在Windows(2003、2008)的服务器版本上@tech:注意,我说过“使用Excel Automation API”+1用于FileHelper,但请注意,对于Excel支持,它需要安装Excel,并使用Excel自动化(COM互操作)要阅读Excel。正如@John Saunders所指出的,这不是生产服务器环境中官方支持的配置。+1用于FileHelpers,但请注意,对于Excel支持,需要安装Excel,并使用Excel自动化(COM互操作)要阅读Excel,正如@John Saunders所指出的,这不是生产服务器环境中官方支持的配置。