【发布时间】:2009-09-15 13:58:06
【问题描述】:
假设您不知道 Excel 工作簿中第一个工作表的名称。并且您想找到一种从 first 页面读取的方法。这个 sn-p 有时有效,但并非总是如此。只有我吗?或者有没有更简单的方法来做到这一点?
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + inputFile + "';Extended Properties=Excel 8.0;");
String[] excelSheets = new String[tbl.Rows.Count];
int i = 0;
foreach (DataRow row in tbl.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}
string pageName = excelSheets[0];
OleDbDataAdapter myAdapter = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + pageName + "]", MyConnection);
注意:我正在寻找第一个工作表的名称。
【问题讨论】:
-
Eviljack,您应该澄清这个问题,因为该问题似乎没有使用自动化(您在示例代码中专门使用 OleDb,然后在对 Jacob 的评论中,您声明 VSTO 是不允许此项目。然后,您为 Jacob 的解决方案打勾,该解决方案不需要 VSTO,但确实使用自动化。因此,从技术上讲,并没有破坏您的“无 VBTO”声明......但是,总体而言,如图所示和讨论,看起来 sgmoore 的解决方案更接近您最初寻找的解决方案?