【问题标题】:Excel OleDbCommand SELECT * does not select all columnsExcel OleDbCommand SELECT * 不选择所有列
【发布时间】:2013-02-04 11:23:14
【问题描述】:

我下载了一个 XLS 电子表格,并尝试将其导入到 .net 数据表中。 sheet的结构如下:

(没有名称的日期列),流入(kWh),流出(kWh),库存(kWh)

连接字符串是:

" Provider=Microsoft.Jet.OleDb.4.0;Data Source=sheet.xls;Extended Properties="Excel 8.0;IMEX = 1"

不起作用的事情:

- "SELECT * FROM [Sheet1$]" selects: NoName, Inflow_(kWh), Outflow_(kWh) and the last column is missing

- "SELECT [Stock (kWh)] FROM [Sheet1$]" returns: "No value given for one or more required parameters."

- "SELECT [Stock_(kWh)] FROM [Sheet1$]" returns: "No value given for one or more required parameters."

- "SELECT * FROM [Sheet1$A:D]" Selects: NoName, Inflow_(kWh), Outflow_(kWh) and the last column is missing

可行但不是解决方案的方法:

- "SELECT * FROM [Sheet1$D:D]" Selects: Stock_(kWh) but all other columns are missing
  • 如果我在下载文件后在 Excel 中打开文件(不保存)然后尝试导入它,那么它可以工作。

  • Excel 互操作工作

有什么想法吗?有人吗?

【问题讨论】:

  • 我的 ConnectionString 是 :" Provider=Microsoft.Jet.OleDb.4.0;Data Source=sheet.xls;Extended Properties="Excel 8.0;IMEX = 1" (添加或删除 IMEX 不会改变任何东西)
  • 看看这个家伙的问题,看看连接字符串部分StackOverFlow OleDbCommand Select
  • 不幸的是,将连接字符串更改为 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=sheet.xls;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;" 没有有什么影响

标签: c# excel oledb


【解决方案1】:

这是我在我的一个应用程序中使用的连接字符串,当我使用 SELECT * FROM [worksheetName$] 时一切正常

string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='{0}';Extended Properties=\"Excel 8.0;IMEX=1\""  

它看起来与您的非常相似,除了我在数据源周围有单引号,并且我正在转义我的双引号(假设您也正确地这样做但只是没有显示它)。所以我不认为连接字符串是你的问题。

当您选择 D:D 来获取缺失的 Stock 列时,它是什么数据类型?如果您使用 GetOleDbSchemaTable 查看元数据,它会为该表的列显示什么,以及缺失列的数据类型?

您能否为我们提供一些电子表格中的示例行,以便我们了解数据的外观,并尝试一下?另外,它是 XLS,不是 XLSX 对吗?

【讨论】:

  • 您好,感谢您的回答。按照下载链接获取文件:vattenfall.com/en/usage-of-gas-storage-.htm 格式为 XLS(不是基于 XML),所有列(包括缺失的列)的数据类型为字符串。我在列之间看到的唯一区别是最后一个可以为空。你能重现错误吗?如果我在 excel 中打开文件,那么它可以解决问题(除非我将文件设为只读)。当我打开文件时,excel对文件做了什么?
猜你喜欢
  • 1970-01-01
  • 2018-05-18
  • 2011-04-08
  • 2015-04-15
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多