问题描述
|
如何在不使用导入向导的情况下使用sql查询将Excel文件导入sqlserver2008 Express Edition中的新表中
谢谢
普拉迪
解决方法
有一个Microsoft知识库文章,列出了所有可能的方法。
http://support.microsoft.com/kb/321686
我认为使用without0ѭ或
OPENDATASOURCE
是没有向导的最简单方法。 (请参阅分布式查询)
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
,使用ѭ3读取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\",FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
result.Dispose();
现在使用可以使用Bulkcopy类进行批量导入。
要么
创建xml并发送到数据库
要么
用OPENROWSET
读取存储过程中的excel文件并插入/更新数据。
请按照以下文章进行实施。
在SQL存储过程中阅读Excel
,右键单击数据库名称/转到任务,然后选择导入数据
作为源,请选择您之前创建的excel文件并选择其路径
在下一页上,选择sql server作为目标服务器