从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文件?
答案 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
是你唯一知道的方法。