使用OLEDB将列添加到Excel中的工作表

使用OLEDB将列添加到Excel中的工作表,excel,oledb,Excel,Oledb,你好 我正试图通过命令将新列添加到Excel工作表中 ALTER TABLE[MyTable]添加列字段\u dest nvarchar 但在执行命令时出现异常“无效操作” 我在末尾尝试了table name(有$和没有$),但得到了相同的结果 我的问题是 1) 上面的命令有错误吗? 2) excel表格是否支持命令ALTER table? 3) 将列添加到excel工作表中的替代方法是否更适合通过OLEDB 提前感谢Alter table将不起作用,不过,您可以创建表格或选择Into,这将允许

你好
我正试图通过命令将新列添加到Excel工作表中

ALTER TABLE[MyTable]添加列字段\u dest nvarchar

但在执行命令时出现异常“无效操作” 我在末尾尝试了table name(有$和没有$),但得到了相同的结果
我的问题是
1) 上面的命令有错误吗?
2) excel表格是否支持命令ALTER table?
3) 将列添加到excel工作表中的替代方法是否更适合通过OLEDB


提前感谢

Alter table将不起作用,不过,您可以创建表格或选择Into,这将允许您创建新的工作表。我不能让它在一张打开的纸上运行

Dim cn As Object
Dim scn As String
Dim sSQL As String

strFile = "C:\Docs\test.xls"

scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;"""

Set cn = CreateObject("ADODB.Connection")

cn.Open scn

''Note that there is no $ on the sheet to be created
sSQL = "SELECT *,'' As NewField INTO [Sheet17] FROM [Sheet4$]"

''Jet data types
sSQL = "CREATE TABLE [Sheet8] (AText text, ANother text)"

cn.Execute sSQL

如果针对打开的文件运行,则会出现一个错误,大意是Sheetn不存在。

您可以使用Create Table而不是Alter Table。 只需使用现有表名,然后将列添加到现有表中

CREATE TABLE [ExistingSheet$] (ID char(255), oldField1 char(255), newField2 char(255))

这是工作

@lm我想我没能解释清楚。不能添加到现有表中,但可以将现有表和新列复制到新表中,
选择*,''作为新字段从[Sheet4$]
复制到[Sheet17],其中Sheet4$是现有表,*是所有列,''作为新字段和Sheet17是新表。或者,您可以使用create table创建一个新表,并使用现有数据更新它。我理解。我将选中该选项以使用SELECT..INTO(如您所解释的)或其他选项来创建之前具有更新结构的表。非常感谢您提供有用的信息。您好,我正在寻找类似问题的解决方案。我已经使用“选择到”创建了一个副本,但是当我试图打开excel文件时,一旦复制了数据,就会出现错误,因为excel文件已损坏。如果没有代码示例,我所能想到的就是您可能没有正确的连接字符串。