需要帮助在不安装Microsoft Access数据库引擎2010 Redistributable的情况下读取Excel

本文关键字:Redistributable 2010 引擎 情况下 Excel 读取 数据库 Access 帮助 不安 Microsoft | 更新日期: 2023-09-27 18:25:11

我在MVC应用程序中使用LINQ库从excel文件中读取数据,但需要安装它:Microsoft Access Database Engine 2010 Redistributable。

有没有任何方法可以在不安装此Microsoft框架的情况下使用LINQ?

需要帮助在不安装Microsoft Access数据库引擎2010 Redistributable的情况下读取Excel

如果是Microsoft Excel 2007或更新版本:

这些文件(.xlsx)采用OpenXML格式,该格式是包含XML格式文件的zip存档。您可以提取这个zip存档,并使用LINQ to XML查询数据,但请注意,这将是一个真正的原始数据。

或者,您应该使用Microsoft提供的专用库:Open XML SDK
您不需要安装任何东西(例如MS Office),只需将库引用到MVC项目即可。
然后您也可以使用LINQ语法以更用户友好的方式查询数据。

例如:

var refIndex = 7;
var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
var row = sheetData.Elements<Row>().FirstOrDefault(x => x.RowIndex >= rowIndex);

LINQ只是一种从代码中编写查询的方法。

这些查询将由提供者翻译,并由数据源执行。在这种情况下,从提供者到数据源的链接是通过OLEDB,使用Access引擎查询Excel文件。运行此代码的计算机必须安装可重新分发的访问引擎。

如果你不想这样,你就不能使用你选择的方法。您必须找到另一种方法来查询Excel文件。你可以使用不同的库来读取Excel文件,但你必须找到一个提供查询的库,或者使用所述库自己重新实现该部分。