如何通过 ODBC 向 Excel 工作表添加额外的行?

Posted

技术标签:

【中文标题】如何通过 ODBC 向 Excel 工作表添加额外的行?【英文标题】:How do I add extra rows to an Excel sheet via ODBC? 【发布时间】:2018-07-06 10:47:32 【问题描述】:

我使用 ODBC 在 Excel 中创建了一个工作表并在其中添加了一行。

从字面上看,这些命令只是:

create table 'update5' ('age' NUMBER);
insert into 'update5'.'age' values (1);

这可行,我可以通过 DBVisualiser 和我的 ODBC 查询结果查看工作表中的行。

后来,我写了更多的 SQL 来添加另一行,如下所示:

insert into 'update5' ('age') values (2);

但我得到了错误:

[Microsoft][ODBC Excel 驱动程序] 无法扩展命名范围。

我不知道为什么要使用命名范围,有没有办法可以将 ODBC 设置为不使用它们?

【问题讨论】:

我很困惑 - 你在哪里输入这些命令? INSERT INTO 不是用于返回数据,而是用于将记录添加到现有表中。 SELECT 将用于查看数据。有什么沟通不畅,您能否再澄清一下,或者添加屏幕截图或更具描述性的内容? Argh - 愚蠢的多个窗口打开!这个问题的标题不正确,我稍后会编辑它。我正在通过 ODBC 引擎运行的脚本中输入命令。 【参考方案1】:

如果不知道更多关于你在做什么、你在做什么以及你的最终目标,我无法给出明确的答案 - 但是,如果你说这可以正常工作:

create table 'update5' ('age' NUMBER);
insert into 'update5'.'age' values (1);

...那么按理说:

insert into update5 values (2);

...不会工作,因为你的失踪:

引号(在您的环境中可能是可选的,也可能不是),以及, 要导出到的字段名称。

在第一个insert into 语句中你有:

'update5'     <-- the destination table
.'age'        <-- the destination field
 values (1);  <-- the value to insert

...所以如果您只是想将编号为 2 的记录添加到同一字段,使用相同的代码

insert into 'update5'.'age' values (2);

更多信息:

w3schools : SQL INSERT INTO Statement 教程点:SQL INSERT Query (Tutorial)

【讨论】:

抱歉,问题包含错误。生成的实际 SQL 具有相关格式。我已经相应地编辑了问题【参考方案2】:

找到了。

当您通过 ODBC 在 Excel 中创建表时,您会在该表中创建一个同名的命名范围。

当你尝试这样插入时:

insert into 'update5'.'age' values (2);

它被解释为您试图添加到名为 update5 的命名范围,该范围位于表 update5 内。

你需要使用语法:

insert into [update5$].'age' values (2);

将值添加到名为 update5 的表中。

【讨论】:

以上是关于如何通过 ODBC 向 Excel 工作表添加额外的行?的主要内容,如果未能解决你的问题,请参考以下文章

通过 ODBC 缓存 DB 访问 Excel - 锁定许可证问题

如何将C语言的输出倒入Excel工作表

如何向多对多数据透视表添加额外的列

通过ODBC将Excel连接到PostgreSQL

100分寻求MFC高手,如何通过MFC操作Excel添加一个工作表

排除元素的 Excel 数据透视表小计