通过OleDb对象导入工作表时,工作表名称中的初始空间问题

时间:2014-11-27 08:24:07

标签: c# oledb oledbdataadapter

我正在使用OleBb对象将excel文件读入数据表

System.Data.OleDb.OleDbConnection myCon = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source='" + FileName + "';Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\" ");
System.Data.OleDb.OleDbDataAdapter cImport = new system.Data.OleDb.OleDbDataAdapter("select * from [ Gravity$A3:ZZ]", myCon );
cImport.Fill(dt)

执行上述查询显示错误:

  

名称'Gravity $ A3:ZZ'无法包围。

我认为这个错误是由于工作表名称“Gravity”开始时有一个空格。

如果我在查询中删除此空格&写一下“select * from [Gravity $ A3:ZZ]”,然后显示无效的对象名称。

如何仅使用OleDb对象处理此问题?

2 个答案:

答案 0 :(得分:0)

尝试将名称放在引号

之间
System.Data.OleDb.OleDbDataAdapter cImport = new system.Data.OleDb.OleDbDataAdapter("select * from [\" Gravity$A3:ZZ\"]", myCon );

第二:正如@PanagiotisKanavos所说

  

Α3:ZZ似乎不是有效范围

答案 1 :(得分:0)

甚至尝试

select * from [' Gravity$A3:ZZ']