指定通过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$'。我认为这与撇号有关,但不知道正确的语法是什么。
我相信你可以简单地在Excel中添加一个命名范围并运行:
"SELECT * FROM [CA$MyNamedRange]"
如果表单名称以'$'结尾,您将不得不更改它,或者在代码中处理它。最后,确保Excel文件已关闭。如果它是打开的,它可能会引起问题