我使用LINQ库从我的MVC应用程序中的excel文件中读取数据,但需要安装它:Microsoft Access Database Engine 2010 Redistributable。
在没有安装此Microsoft框架的情况下,是否有任何方法可以使用LINQ?
答案 0 :(得分:1)
如果是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);
答案 1 :(得分:0)
LINQ只是一种从代码中编写查询的方法。
这些查询将由提供程序翻译,并由数据源执行。在这种情况下,从提供程序到数据源的链接是通过OLEDB,使用Access引擎查询Excel文件。运行此代码的计算机必须安装Access Engine可再发行组件。
如果您不想这样,则无法使用您选择的方法。您将不得不找到另一种查询Excel文件的方法。您可以使用不同的库来读取Excel文件,但是您必须找到一个库,该库提供查询 - 或者使用所述库自行重新实现该部分。