关于SQLserver直接读写Excel文档的技术汇总

来源:互联网  作者:本站整理
摘要:直接使用SQL语句读取Excel表格内容示例一:SELECT * FROM OpenDataSource(’Microsoft.Jet.OLEDB.4.0’,’Data Source="c:\zt.XLS";Extended Propert……

直接使用SQL语句读取Excel表格内容

示例一:

SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\zt.XLS";Extended Properties="Excel 8.0";Persist Security Info=False')...[a1$]

确保你的c:\zt.xls中包含工作表 a1,如果文件中没有工作表a1,应该换成文件中有的工作表名,如果文件中有工作表a1,则使用我上面的方法(一般读取excel文件中的表,都要在工作表名后加$)

示例二:

select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="E:\工作文档\毕业设计\空气质量预测\四季神经计算数据.xls";Extended Properties="Excel 8.0";Persist Security Info=False')...[春季$]

以上查询语句位于一行中,且我的xls表的中有一个工作表的名字就是:春季。

使用SQL语句将sql-server导入excel中

>>从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) select * from 表

>>如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:

--导出表的情况
EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out "c:\test.xls" /c /S"服务器名" /U"用户名" -P"密码"'

--导出查询的情况
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:\test.xls" /c /S"服务器名" /U"用户名" -P"密码"'

/*--说明:
c:\test.xls  为导入/导出的Excel文件名.要求文件在SQL服务器上,或者SQL服务器可以访问的共享目录上
sheet1$    为Excel文件的工作表名,一般要加上$才能正常使用.
--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_exporttb]
GO

【相关文章】好搜一下
微软MTS三层应用系统开发技术概述

微软MTS三层应用系统开发技术概述

MTS是一种以Microsoft COM(对象模型组件)技术为基础,并且以服务器…