将excel导入sql server时出现问题

时间:2013-12-20 08:33:33

标签: sql sql-server excel

从Excel导入数据时,我在SQL Server中遇到了奇怪的问题。我导入的Excel文件是从Crystal Reports导出的。

我使用了这个查询

SELECT 
   *, '10000143' as bank  
FROM 
   OPENROWSET('Microsoft.Jet.OLEDB.4.0',
              'Excel 8.0;Database=C:\\xampplite\htdocs\EXCEL\data\kbl.xls;IMEX=1',
              'SELECT * FROM [Sheet1$]')

我创建了单独的新Excel文件(使用Microsoft Office)并将其另存为.xls(2003兼容)。我尝试使用上面的查询导入此excel,但它会抛出错误。

  

Msg 7399,Level 16,State 1,Line 1
  链接服务器“(null)”的OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”报告错误。提供商未提供有关错误的任何信息   消息7303,级别16,状态1,行1   无法为链接服务器“(null)”初始化OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

我再次创建了一个html文件,如下所示

<table>
<tr>
   <td>r1<td>
   <td>r2<td>
   <td>r3<td>
</tr>
<tr>
   <td>1<td>
   <td>2<td>
   <td>3<td>
</tr>
</table>

我通过Internet Explorer将html文件导出到excel。然后我尝试使用上面的查询将其导入SQL Server。它就像一个魅力。

我不知道如何导入使用Microsoft Office创建的Excel文件?

2 个答案:

答案 0 :(得分:0)

您可以检查您的查询是否有额外的反斜杠

Excel 8.0;Database=C:\\xampplite\htdocs\EXCEL\data\kbl.xls;IMEX=1'

用户

  Excel 8.0;Database=C:\xampplite\htdocs\EXCEL\data\kbl.xls;IMEX=1'

答案 1 :(得分:0)

您是否考虑过使用SQL Server导入和导出向导?

右键单击对象Explorer --> Tasks --> Import Data...

中的数据库节点

然后可以使用该向导根据需要导入Excel文件,从而控制您要导入的列和数据类型。

然后,向导将生成并运行SSIS package,您也可以选择保存。

我不会提到它,但你说过

" have no idea how to import an Excel file which is created using Microsoft Office?"

建议OPENROWSET是你唯一知道的方法。