oledb - excel工作簿的OleDb方案未在架构中显示行
问题描述
我正在尝试打开 Excel 工作簿并从工作表中读取。很简单。
string sConnction = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"C:\\Users\\sstowe\\Documents\\Ranorex\\RanorexStudio Projects\\BottomLineII\\BottomLineII\\Widget.xls\";Extended Properties=\"Excel 12.0;HDR=NO\";";
string sSql = "Select * FROM Corporate";
OleDbConnection cn = new OleDbConnection(sConnction);
OleDbCommand command = new OleDbCommand(sSql, cn);
cn.Open();
// var reader = command.ExecuteReader();
// Get all Sheets in Excel File
var dtSheet = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
你看 var reader... 在我检查时注释掉了。我收到一个错误“Microsoft Office Access 数据库引擎找不到对象'Corporate'。Corporate 是工作表的名称。Gee 说我,我的名称有误吗?所以我打开 dtSheet 来查看. 在调试器中,dtSheet 报告 0 行但 cn 报告打开状态。所以正在找到工作簿。有人可以建议如何找到工作表吗?
谢谢你。
小号
解决方案
电子表格名称的末尾总是有一个 $,您应该将其括起来,因此将您的 SQL 更改为...
Select * From [Corporate$]
带空格的工作表名称用单引号括起来,因此名为“公司数据”的工作表将是......
Select * From ['Corporate Data$']
您可以查看可用的表格...
DataTable dtTablesList = new DataTable();
dtTablesList = cn.GetSchema("Tables");
推荐阅读
- android - 字体样式没有改变android中的数字
- ionic-framework - Ionic 4 页面动画
- android - 找不到 com.wix:detox:+ 的任何匹配项
- reactjs - 使用 Twitter Apollo GraphQL 登录
- sql - 如果添加了 WHERE 子句,LEFT JOIN 不返回任何结果?
- python - django OSError:在 Windows 上找不到名为“cairo”的库
- amazon-web-services - 如何在 AWS EC2 任务的单个端口上同时公开 TCP 和 UDP?
- html - 为什么页脚站在页面的中央?
- discord.js - 为 Discord bot 组织多个迷你游戏的文件
- html - 将 html 输入字段及其标签与页面中心对齐