[英]SQL Server export to Excel with OPENROWSET
我使用以下語句成功導出到 excel:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\template.xls;',
'SELECT * FROM [SheetName$]')
select * from myTable
是否有任何標准方法可以使用此模板為 Excel 工作表指定一個新名稱,以便模板永遠不會被寫入,或者我是否必須想出一些解決方法?
在人們的體驗中,做到這一點的最佳方式是什么?
您必須使用動態 SQL。 OPENROWSET
等只允許文字作為參數。
DECLARE @myfile varchar(800)
SET @myfile = 'C:\template.xls'
EXEC ('
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''Excel 8.0;Database=' + @myfile + ';'',
''SELECT * FROM [SheetName$]'')
select * from myTable
')
請記住:路徑是相對於 SQL Server 運行的位置
您不能先復制模板,然后將副本的文件名傳遞到 OPENROWSET 中嗎?
您可以在一個位置使用模板,在其他位置使用數據文件。 當您運行該腳本時,它將刪除舊文件並生成一個新數據文件。
EXEC xp_cmdshell 'del D:\template.xls'
EXEC xp_cmdshell 'copy C:\template.xls D:\template.xls'
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\template.xls;',
'SELECT * FROM [SheetName$]')
SELECT * FROM myTable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.