sql sever读取写入Excel总结

主要用到openrowset,opendatasource系统函数,这两个函数任意一个都能完成任务

用这种方法可以实现Excel和sqlserver表之间的相互导入导出。

如果使用openrowset报错,可以参看这篇文章http://www.cnblogs.com/xiashengwang/p/3511808.html

openrowset的写法

 

复制代码
 --3,链接Excel Microsoft Jet 4.0 OLE DB Provider
--读Excel数据,注意Excel必须事先关闭
select * 
from
openrowset('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls', Sheet1$) 

--将数据写入Excel2003文件
--
注意:首先需要对Excel的Sheet1的第一行设置与检索列相等的一些值,可以是任意值,
--
但最好与列名相同;另外oledb可能对Excel没有写权限,需要对Excel表格的属性--》安全中加一个everyone权限
insert  into   
OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls',Sheet1$)   
select *  from  dbo.DQuestionData
复制代码

 

 opendatasource的写法

 

select * 
from
opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls')...Sheet1$

 

 

 

 

上面的代码是链接Excel2003的,对于Excel2007的链接 ,由于oledb提供程序不同,所以链接方式会不同。

 

下面附一个不同的链接方式,也是从网上找到的。

 

复制代码
 --> Jet 引擎访问 Excel 97-2003  
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0''Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls''select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0''Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls'[Sheet1$])  
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0''Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]  
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0''Data Source=D:/97-2003.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$]  
  
--> ACE 引擎访问 Excel 97-2003  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls''select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls'[Sheet1$])  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0''Data Source=D:/97-2003.xls;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]  
  
--> ACE 引擎访问 Excel 2007  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx''select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx'[Sheet1$])  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0''Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx')...[Sheet1$]  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0''Data Source=D:/2007.xlsx;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]
复制代码

 

posted on   狼来了  阅读(3456)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示