4

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

谢谢普拉迪

4

3 回答 3

6

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

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

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

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

于 2011-05-25T10:49:01.177 回答
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 文件并插入/更新数据。

请按照下面的文章来实现它。

SQL存储过程中读取excel

于 2011-05-25T10:42:18.983 回答
0

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

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

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

于 2012-09-21T07:07:26.587 回答