如何将excel文件导入SQLServer2008

如何将excel文件导入SQLServer2008,sql,sql-server-2008,sql-server-2008r2-express,Sql,Sql Server 2008,Sql Server 2008r2 Express,如何在不使用导入向导的情况下使用sql查询将excel文件导入sqlserver2008 express edition中的新表 谢谢 Prady使用ExcelReaderFactory阅读excel 您可以使用下面的代码 VB.net代码 Dim stream As FileStream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read) Dim excelReader As IExcelDataReader

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

谢谢
Prady

使用
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#代码

现在可以使用Bulkcopy类进行批量导入

创建xml并发送到数据库

使用
OPENROWSET
读取存储过程中的excel文件并插入/更新数据

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


有一篇microsoft知识库文章列出了实现这一点的所有方法

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

请参阅OPENROWSET文档,以及页面下方的示例


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

作为源,选择您以前创建的excel文件并选择其路径


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

正确,但这是
OPENROWSET
的查询部分。请查看我提供的链接。如果您在x64机器上遇到问题,请参阅x64 Jet engine的此链接,这是导入向导,问题作者明确希望避免此链接。
FileStream stream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
result.Dispose();
SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])