如何使用SQL查询而不使用导入向导将Excel文件导入SQL Server 2008 Express版中的新表?
谢谢 Prady
如何使用SQL查询而不使用导入向导将Excel文件导入SQL Server 2008 Express版中的新表?
谢谢 Prady
OPENROWSET
或OPENDATASOURCE
是最简单的方法,不需要使用向导。(请参见分布式查询)SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])
使用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 作为目标
OPENROWSET
查询部分,请查看我提供的链接。 - Chris Diver