请问如何将select的结果写入EXECL

mrfinger 2004-04-15 10:00:12
谢谢

存储过程如下

create proc xx
@phone varchar(20),
@userid int
as
select * from table where phone=@phone and userid=@userid

我的存储 过程就是 上面这样,现在,请问,我要把我查询出来的数据结果导入EXECL中,保存成@userid.xsl文件,请问不用BCP可以实现吗?
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
progress99 2004-04-15
  • 打赏
  • 举报
回复
/******* 导出到excel
EXEC master..xp_cmdshell 'bcp 數據庫.dbo.數據表 out c:\文件名.xls -c -q -S"服務器名" -U"用戶" -P"密碼"'

/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\temp1.xls";User ID=;Password=;Extended properties=Excel 5.0')...xactions


...xactions 為excel中的sheet名
netcoder 2004-04-15
  • 打赏
  • 举报
回复
--如果从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文件名.
sheet1$ 为Excel文件的工作表名,一般要加上$才能正常使用.
zjcxc 元老 2004-04-15
  • 打赏
  • 举报
回复
create proc xx
@phone varchar(20),
@userid int
as
declare @s varchar(8000)
set @s='bcp "select * from '+db_name()
+'..table where phone='''+@phone
+''' and userid='''+cast(@userid as varchar)
+''' queryout "c:\'+cast(@userid as varchar)
+'.xls" /P"" /c'
exec master..xp_cmdshell @s

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧