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

时间:2011-03-10 15:27:49

标签: excel oledb

您好
我正在尝试通过命令

将新列添加到Excel工作表中

ALTER TABLE [MyTable] ADD COLUMN Field_dest nvarchar

但执行命令时出现异常“无效操作” 我在最后尝试了有和没有$的表名,但得到了相同的结果
我的问题是 1)上面的命令有问题吗?
2)excel表是否支持命令ALTER表?
3)是否将列添加到Excel工作表的替代方法 - 最好通过OLEDB?

提前致谢

2 个答案:

答案 0 :(得分:3)

更改表格不起作用,但AFAIK可以创建表格或选择进入,这将允许您创建新表格。我无法让这张照片打开。

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不存在的错误。

答案 1 :(得分:0)

您可以使用“创建表”而不是“更改表”。 只需使用现有的表名称,然后您的列就会添加到现有的表格

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

这是工作!