Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LinqToExcel读取保存为xls的xlsx_C#_Linq To Excel - Fatal编程技术网

C# 使用LinqToExcel读取保存为xls的xlsx

C# 使用LinqToExcel读取保存为xls的xlsx,c#,linq-to-excel,C#,Linq To Excel,请看这篇文章: 我在那篇文章中描述了同样的问题,但是我使用LinqtoExcel来读取文件,而不是普通的查询 根据该帖子的答案,设置连接字符串的LinqToExcel等效方法是什么 以下是我正在使用的代码: var excelOM = new ExcelQueryFactory(pPathArchivoOM); var despachosClient = from c in excelOM.Worksheet<RegistroDespachoOM>("Tabla_1")

请看这篇文章:

我在那篇文章中描述了同样的问题,但是我使用LinqtoExcel来读取文件,而不是普通的查询

根据该帖子的答案,设置连接字符串的LinqToExcel等效方法是什么

以下是我正在使用的代码:

var excelOM = new ExcelQueryFactory(pPathArchivoOM);
var despachosClient = from c in excelOM.Worksheet<RegistroDespachoOM>("Tabla_1")
                         where c.DESTINAT.Contains("SOMETEXT")
                         select c;
//Identificar los despachos asociados a números de documento sin datos aún.
foreach (RegistroDespachoOM despacho in despachosClient)
{ ...
var excelOM=新的ExcelQueryFactory(pPathArchivoOM);
var despachosClient=来自excelOM.工作表(“表1”)中的c
其中c.DESTINAT.Contains(“SOMETEXT”)
选择c;
//这是一份关于文件的文件。
foreach(在DespachoClient中注册despacho)
{ ...
我的问题是:foreach start中的“外部表不是预期的格式”


编辑(我的问题已解决,但问题仍未解决):我正在使用EPPlus而不是LinqToExcel来完成此任务,现在一切正常。

您将需要使用ACE数据库引擎而不是JET数据库引擎

通过设置
DatabaseEngine
属性,可以使用LinqToExcel实现这一点

var excelOM = new ExcelQueryFactory(pPathArchivoOM);
excelOM.DatabaseEngine = DatabaseEngine.Ace;

谢谢!我没有找到任何像DatabaseEngine这样的属性,因为我使用的是LinqToExcel 1.0。我更新到了LinqToExcel 1.6,现在该属性已经存在;设置它可以让我用LinqToSql读取有问题的文件。不过我会继续使用EPPlus,因为它更面向对象。LinqToExcel将是纯excel 97/2003文件的选项。@daniloquio LinqToExcel仍然可以读取Excel 2007文件。您只需要使用Ace数据库引擎。在64位上,将扩展名更改为xls或将其删除。无此错误-相同错误。-----从文档中:设置要使用的数据库引擎(以xlsx、xlsm和xlsb结尾的电子表格必须使用Ace数据库引擎)(如果运行64位,则默认为ACE(JET无论如何都不工作),如果运行32位,则默认为JET),LinqToExcel也适用于excel 2007文件。您只需使用ACE数据库引擎,答案如下所述。