如何将excel文件导入sqlserver 2008

时间:2011-05-25 10:37:48

标签: sql sql-server-2008 sql-server-2008r2-express

如何在不使用导入向导的情况下使用sql查询将excel文件导入sqlserver2008 express版中的新表

由于 Prady

3 个答案:

答案 0 :(得分:6)

有一篇微软知识库文章列出了所有可能的方法。

http://support.microsoft.com/kb/321686

我认为使用OPENROWSETOPENDATASOURCE将是最简单的方法,没有向导。 (请参阅分布式查询)

SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

请参阅OPENROWSET文档,页面下方有示例。

http://msdn.microsoft.com/en-us/library/ms190312.aspx

答案 1 :(得分:1)

使用ExcelReaderFactory阅读excel

您可以使用以下代码

VB.net代码

Dim stream As FileStream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read)
Dim excelReader As IExcelDataReader = ExcelReaderFactory.CreateBinaryReader(stream)
Dim result As DataSet = excelReader.AsDataSet()
excelReader.Close()
result.Dispose()

C#代码

FileStream stream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
result.Dispose();

现在可以使用Bulkcopy类进行批量导入。

创建xml并发送到数据库

使用OPENROWSET读取存储过程中的Excel文件并插入/更新数据。

请按照以下文章实施。

Read excel in SQL stored Procedure

答案 2 :(得分:0)

右键单击数据库名称/转到任务,然后选择导入数据

作为源选择您之前创建的excel文件并选择它的路径

在下一页上选择sql server作为目标