【问题标题】:Bulk import Excel file into SQL Server将 Excel 文件批量导入 SQL Server
【发布时间】:2015-08-04 10:55:22
【问题描述】:

我正在尝试将 Excel 文件批量导入 SQL Server。我已经尝试了很多努力,但没有得到正确的结果。我已经运行了以下查询,但出现错误。请尝试帮助我,我被困在这个问题上。我安装了 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$]')

错误:

无法为链接服务器“(null)”创建 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的实例。

【问题讨论】:

  • 这是一次性导入,还是您想要一遍又一遍地运行的东西?
  • 您可以使用内置向导进行尝试。您也可以尝试改用 .csv 文件。您是否有理由隐式需要 Excel 文件?
  • @sarin:是的,我想使用存储过程重新运行它
  • 听起来您的提供商有问题。确保您使用的提供程序和 SQL Server 都是 64-64 或 32-32 位

标签: c# asp.net sql-server excel tsql


【解决方案1】:

我认为是 Office 版本的问题,只需尝试此代码

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

More help

【讨论】:

    【解决方案2】:

    以下是 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-05
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      相关资源
      最近更新 更多