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