excel 工作簿的 OleDb 方案未在方案中显示行

OleDb scheme for excel workbook not showing rows in schema

我正在尝试打开 Excel 工作簿并阅读 sheet。很简单。

            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 是 sheet 的名称。哎呀,我是不是把名字弄错了?所以我打开 dtSheet 查看。在调试器中,dtSheet 报告 0 行,而 cn 报告打开状态。所以正在找到工作簿。有人可以建议如何找到 sheet 吗?

谢谢。

S

Spreadsheet 名称的末尾总是有一个 $,您应该将其括起来,因此将 SQL 更改为...

Select * From [Corporate$]

Sheet 带空格的名称用单引号括起来,所以 sheet 称为 "Corporate Data" 将是...

Select * From ['Corporate Data$']

您可以查看可用的 sheets...

DataTable dtTablesList = new DataTable();
dtTablesList = cn.GetSchema("Tables");