如何从XLSX文件扩展名批量插入?

时间:2012-10-29 15:30:26

标签: sql-server bulkinsert xlsx

有人可以建议如何批量插入.xlsx文件吗?

我已经尝试了以下查询:

BULK INSERT #EVB FROM 'C:\Users\summer\Desktop\Sample\premise.xlsx' 
WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2);

SELECT * FROM #EVB

我也尝试使用FIELDTERMINATOR like "**\t**", "**,**", "**;**", "**|**",但这也不起作用。

不幸的是,没有错误消息。

4 个答案:

答案 0 :(得分:23)

您可以将xlsx文件另存为制表符分隔的文本文件并执行

BULK INSERT TableName
        FROM 'C:\SomeDirectory\my table.txt'
            WITH
    (
                FIELDTERMINATOR = '\t',
                ROWTERMINATOR = '\n'
    )
GO

答案 1 :(得分:3)

您需要使用OPENROWSET

请检查此问题:import-excel-spreadsheet-columns-into-sql-server-database

答案 2 :(得分:1)

为您的文档创建链接服务器

http://www.excel-sql-server.com/excel-import-to-sql-server-using-linked-servers.htm

然后使用普通的INSERT或SELECT INTO。如果你想得到想象,你可以使用ADO.NET的SqlBulkCopy,它几乎可以获取任何可以从DataReader获取的数据源,并且插入速度非常快,尽管读取数据的速度不会很快。 / p>

您还可以花时间将Excel电子表格转换为文本分隔文件或其他bcp supported format,然后使用BCP。

答案 3 :(得分:0)

可以使用 SQL Server导入和导出向导完成。但是,如果您熟悉SSIS并且不想运行SQL Server导入和导出向导,请创建一个SSIS包,它在数据流中使用Excel Source和SQL Server Destination。