【发布时间】:2017-06-29 13:05:07
【问题描述】:
我进行了深入搜索,但似乎找不到答案。
我想将 SQL 查询导出到 Excel 并将其(excel)返回到客户端应用程序或我的 Web 服务。 (考虑类似FOR XML 的概念,而是返回二进制 Excel 数据)
我测试了这个(经过长时间的努力),它终于可以正常工作了:
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\1.xls;',
'SELECT * FROM [Sheet1$]')
SELECT TOP 5 ID, ItemName FROM dbo.MyItems
并将其返回给客户:
SELECT * FROM OPENROWSET(BULK N'D:\1.xls', SINGLE_BLOB) rs
但是,文件D:\1.xls 必须已经存在。
我已经阅读了这个公认的答案:T-SQL: Export to new Excel file
4 如果您不想提前创建 EXCEL 文件并想 导出数据到它,使用
EXEC sp_makewebtask
sp_makewebtask 已弃用。
有没有办法在没有现有文件的情况下完成这项任务?或者至少在导出之前动态创建一个合适的文件?甚至更好:根本不使用任何文件?
谢谢。
【问题讨论】:
-
SSIS 在这些地方很方便。数据可以随时随地放在 Excel 上。
-
@PrabhatG,你能举个例子吗?
-
原来使用Excel文件的原因是什么?如果您正在寻找一种不使用文件的方法,这是方式更容易
-
@Rominus,我想将 SQL 查询导出到 Excel 文件并在我的客户端应用程序中将它(excel)返回给客户端,而不是在客户端生成 Excel。
标签: sql-server excel sql-server-2008 tsql