简体   繁体   English

将Excel文件批量导入SQL Server

[英]Bulk import Excel file into SQL Server

I am trying to bulk import an Excel file into SQL Server. 我正在尝试将Excel文件批量导入SQL Server。 I have tried a lot of effort but not get proper result. 我已经做了很多努力,但没有得到适当的结果。 I have ran following query but got an error. 我已经执行了以下查询,但是出现了错误。 Please try to help me I am stuck on this. 请尝试帮助我,我对此感到困惑。 I have SQL Server 2012 and Excel 2013 installed 我已安装SQL Server 2012和Excel 2013

SELECT * 
INTO temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=D:\File.xls;IMEX=1',
                'SELECT * FROM [Data$]')

Error: 错误:

Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)". 无法为链接服务器“(null)”创建OLE DB提供程序“ Microsoft.Jet.OLEDB.4.0”的实例。

I think is office versions issue just try this code 我认为是Office版本问题,只需尝试以下代码

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                       'Excel 8.0;Database=C:\Export.xls;', 
                       'SELECT id_sale FROM [ExportSheet$]')

More help 更多帮助

Here are examples for excel versions 97-2010, which should have you covered : 以下是Excel 97-2010版本的示例,您应该了解其中的内容:

--Excel 2007-2010
SELECT * INTO #temptable
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0 Xml;HDR=YES;Database=D:\File.xls',
    'SELECT * FROM [ExcelTabName$]'); -- Replace ExcelTabName with actual tab name

--Excel 97-2003
SELECT * INTO #temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;HDR=YES;Database=D:\File.xls',
    'select * from [ExcelTabName$]'); -- Replace ExcelTabName with actual tab name

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

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