首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Excel工作表中向表对象插入行?

如何在Excel工作表中向表对象插入行?
EN

Stack Overflow用户
提问于 2018-03-23 05:01:39
回答 2查看 0关注 0票数 0

我很难将行插入到现有的表对象中。下面是我的代码片段:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\myExcelFile.xlsx" + ";Extended Properties=\"Excel 12.0;ReadOnly=False;HDR=Yes;\"";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
    conn.Open();
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;

    string insertQuery = String.Format("Insert into [{0}$] (ID, Title,NTV_DB, Type ) values(7959, 8,'e','Type1')", TabDisplayName);
    cmd.CommandText = insertQuery;
    cmd.ExecuteNonQuery();
    cmd = null;
    conn.Close();
}

因此,我将行插入到现成的表对象下面:

我还尝试在表对象中插入数据,如下所示:

 string insertQuery = String.Format("Insert into [{0}$].[MyTable] (ID, Title,NTV_DB, Type ) values(7959, 8,'e','Type1')", TabDisplayName);

但我有个错误:

Microsoft Access数据库引擎找不到“MyTable”对象。确保该对象存在,并确保正确拼写其名称和路径名。如果“MyTable”不是本地对象,请检查网络连接或与服务器管理员联系。

如所见,表名为MyTable确实存在。如果有人能对这个谜团有所了解,我会非常感激的。

EN

Stack Overflow用户

发布于 2018-03-23 13:54:23

ADO.NET不能访问XL的表对象(也就是列表),也不能访问直接或间接引用表名或结构化引用的范围名称。ADO.NET可以访问引用表的单元格范围的表上的命名范围。

示例:名称MyTable=$A$1:$E$3。所以你可以用Range例如(Sheet1$A:E)为此目的。在这种情况下,INSERT语句可以更改为如下内容:

string insertQuery = "INSERT INTO [Sheet1$A:E] (ID, Title,NTV_DB, Type) VALUES (7959, 8,'e','Type1')"; 

其他限制:

工作簿保护:ADO无法访问受密码保护的工作簿。 使用过的行:Ado将插入最后一个用过的行下面。注意!最后使用的行可以是空的。

Tables如前所述。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档