2012-07-19 89 views
0

我期望將導出到Excel的SQL查詢的結果格式化爲模板。ASP.Net - 將SQL查詢結果導出到Excel

基本上用戶點擊數據行,查詢爲該特定參數執行,用戶可以選擇保存到Excel文件。

  1. 如何將這些數據插入到Excel模板中。
  2. 我可以繞過將Excel文件保存到一個位置,這樣用戶只會被提示,因此如果取消的文件沒有保存?

乾杯

比爾

回答

0

我建議你在運行時從該查詢,而不是一個.xls

.csv文件可以返回的結果創建.csv文件在C#在Excel中打開,所以你仍然可以使用excel作爲應用程序的末尾

一旦創建csv文件,你可以打開它像這樣的excel System.Diagnostics.Process.Start("yourExcelFile.xls");

也請看到此鏈接,因此我不建議你使用從http://support.microsoft.com/kb/257757微軟 目前不建議採取辦公自動化

款,並且不支持的 Microsoft Office應用程序自動化從任何無人值守,非交互式 客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT 服務),因爲Office在此環境中運行Office時可能會出現不穩定的行爲和/或死鎖。

0

要做到這一點有點事,我建議寫一些VBA代碼,您的Excel工作表的後面(Alt鍵F11將帶你到編碼窗口)

然後編寫一些代碼來調用存儲過程(VBA的在下面的鏈接樣品)

http://support.microsoft.com/kb/185125

一旦你的數據,它不應該是很難直接保存到一個文件,而不是用它填充表。

0

我會使用常規解決方案從sql server中獲取數據並轉換爲excel(作爲行&列),但將返回的數據放在與模板不同的工作表中。

http://blogs.office.com/b/microsoft-excel/archive/2010/06/07/running-a-sql-stored-procedure-from-excel-no-vba.aspx
http://codebyjoshua.blogspot.com.au/2012/01/get-data-from-sql-server-stored.html

一旦你的數據在Excel中,在工作表模板,只需要使用鏈接的每個數據項( '= Sheet2的!A6')的數據表。

hth
mcalex