繁体   English   中英

使用select into将所选信息从excel导入到SQL

[英]Importing selected information from excel to with SQL with select into

我正在尝试从特定文件中导入特定信息,并将其放入工作簿中。

让:

“ Bluelake.xlsm”将是文件名(工作簿)“ Time”将是工作表信息在表“ C3”至“ C8”中。

sql表的参数为:

TableName:processStatus
列:processStatus,值是:varchar(32)/任何字符串

我的问题:

  1. 提供特定的excel坐标后,代码应如何显示
  2. 如何合并变量定义varchar(32)

我知道“插入”的书呆子示例:

INSERT INTO table_name(column1,column2,column3,...)VALUES(value1,value2,value3,...);

不幸的是,我不知道如何扩展它。

先感谢您。

INSERT INTO processStatus (processStatus1, processStatus2, processStatus3
            ,processStatus4, processStatus5, processStatus6)
SELECT (C3, C4, C5, C6, C7, C8)
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'Excel 12.0;HDR=YES;Database=Bluelake.xlsx',
                'select * from [Time$]');

注意:如果实际上在Excel工作表中已命名列,则需要在此处替换它们。

而且您没有为processStatus表提供列名,因此我用通用名称替换了它们,您也需要在代码中替换它们。

您的“数据库”必须是Excel文件的标准文件路径。

最后,如果确实需要更改数据类型,则需要CAST每列。 例如:

CAST(C3 AS VARCHAR(32))

希望这可以帮助!

编辑:另一件事,您可能需要为XLSX使用不同的OLEDB驱动程序。 如果它是一个简单的电子表格,则可能更容易从Excel中另存为旧格式(XLS)。 或者,您可以更进一步,使用SQL导入向导将Excel数据放入表中,然后您的INSERT INTO语句将更加简化,因为您只需从表中进行选择,而不使用OPENROWSET来查询Excel文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM