在ASP.NET核心项目中如何获取OleDb以读取Excel

vee*_*ena 4 oledb excel asp.net-core

有什么方法可以读取ASP.NET Core(通过.Net Core构建的)Excel数据吗?我不能指OleDBproject.json我的.NET的核心项目。还有其他方法吗?

and*_*ews 5

您真的需要OleDB今天才能阅读Excel吗?我认为,OleDB有点过时了。有一些开放源代码库可用于Excel文件,这些库更易于使用并且具有很大的灵活性。

ClosedXML(https://closedxml.codeplex.com/)是这样的一种库。它有据可查,可以使用自定义单元格样式格式读取和写入Excel文件。

我也使用OleDB来读取非常大的Excel文件,它可以工作,但是存在某些问题,以下是其中一些问题:

  1. 您将需要安装有时难以配置的MS ACE OLEDB提供程序。
  2. 您将不得不分阶段读取Excel文件,而使用ClosedXML则可以按ID /地址随机访问行/单元格。
  3. OleDB使用Windows注册表可配置设置来检查行数(默认为8),以确定整个列的数据类型,有时会出现问题,因为数据类型确定不正确。ClosedXML允许您为任何单元格设置特定的数据类型。

我不是ClosedXML开发人员,所以这不是广告。如前所述,我在项目中使用了OleDB和ClosedXML(并继续使用)。使用OleDB,我能够逐行或使用SQL Server“ SELECT * FROM OPENROWSET(...)”读取非常大的Excel文件(例如,行数为400-800K +)。SQL Server也可以使用相同的ACE提供程序直接写入Excel文件,并且它也适用于非常大的文件。

但是,ClosedXML我曾用于读取/写入相对较小的文件,但它们使用了许多自定义格式。因此,如果您开始一个新项目,我建议您不要使用OleDB。

ClosedXML 的唯一限制是它仅支持压缩的XML Excel文件,即Excel版本2007+。您可以在上述ClosedXML网站上找到许多示例,这些示例将帮助您入门。

让我知道这是否有帮助。谢谢。