如何在不使用导入向导的情况下使用 sql 查询将 excel 文件导入 sqlserver2008 速成版中的新表
谢谢普拉迪
如何在不使用导入向导的情况下使用 sql 查询将 excel 文件导入 sqlserver2008 速成版中的新表
谢谢普拉迪
有一篇微软知识库文章列出了所有可能的方法。
http://support.microsoft.com/kb/321686
我认为使用OPENROWSET
orOPENDATASOURCE
将是最简单的方法,没有向导。(请参阅分布式查询)
SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])
请参阅 OPENROWSET 文档,以及页面下方的示例。
用于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 文件并插入/更新数据。
请按照下面的文章来实现它。
右键单击数据库名称/转到任务,然后选择导入数据
作为源选择您之前创建的 Excel 文件并选择它的路径
在下一页上选择 sql server 作为目标