指定通过OLEDB读取Excel文件时的范围

本文关键字:文件 范围 Excel 读取 OLEDB | 更新日期: 2023-09-27 18:06:45

我有一个> 255列的电子表格,我想把它分成两部分来读。

连接字符串:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text'""

第一个SELECT返回255列:

CommandText = "SELECT * FROM [" + sheetName + "]"

第二个SELECT抛出异常:

cmd.CommandText = "SELECT * FROM [" + sheetName + "IV1]"

这里我想要所有的数据从列IV(=列256)开始。

异常:

System.Data.OleDb.OleDbException (0x80040E37): The Microsoft Access database engine could not find the object ''3 Customers$'IV1'.

表名是'3 Customers$'。我认为这与撇号有关,但不知道正确的语法是什么。

指定通过OLEDB读取Excel文件时的范围

我相信你可以简单地在Excel中添加一个命名范围并运行:

"SELECT * FROM [CA$MyNamedRange]"

如果表单名称以'$'结尾,您将不得不更改它,或者在代码中处理它。最后,确保Excel文件已关闭。如果它是打开的,它可能会引起问题