台灣最大程式設計社群網站
線上人數
1019
 
會員總數:246136
討論主題:189720
歡迎您免費加入會員
討論區列表 >> MS SQL >> 資料匯出至Excel
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料匯出至Excel
價值 : 100 QP  點閱數:1540 回應數:11
樓主

HB
中級專家
3028 74
3777 351
發送站內信

目前採用MS SQL Express當資料庫,希望能像Access一樣,能夠將T-sql產出之資料,直接複製匯出至指定之Excel檔案的Sheet表。
例如:select [customer] into [Excel 8.0;HDR=Yes;Database=D:\ Customer.xls].[Custom] from [contact] order by [customer],在Access可以達到匯出至Excel的需求。

排除使用匯出精靈的方式外,上網Google後,發現沒有適合的T-Sql可用,請問上述的T-Sql可否修改成適合MS SQL Express的環境嗎?
謝謝!




搜尋相關Tags的文章: [ 資料匯出 ] ,
本篇文章發表於2016-11-22 10:39
1樓
不錯的參考

史努比
檢舉此回應
可以試試使用Linked Server 來解決你的問題, Sql Server Linked Server

記得在64位元的電腦上不要選擇Oledb.4.0的provider, 要選 Office 12.0 Access Database Engine OLE DB Provider

如果沒有driver, 用關鍵字 Ace 12.0 去微軟找下載點
本篇文章回覆於2016-11-22 10:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

HB
檢舉此回應
感謝史奴比的資料提供。

參考以後,發現是將Microsoft Excel 活頁簿當作OLE DB 資料來源,透過 SQL Server 進行查詢,而非所需將SQL Server資料轉出至指定的Excel檔案。
本篇文章回覆於2016-11-22 16:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
想先問一個問題,這種情況是你還是使用者用?
如果是你要用,直接在sql server management上面,用sql查出來後丟去excel貼上。
如果是使用者要用...你給他sql本身就是一個問題,應該是建立網頁或應用程式,將sql藏在其中,產生excel。



本篇文章回覆於2016-11-22 16:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

史努比
檢舉此回應
你有試過下列語法能執行嗎?

select * into XLTEST_DMO...Sheet1$ FROM SQLServerTable
本篇文章回覆於2016-11-22 17:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

HB
檢舉此回應
感謝2位大大的協助說明。

To Daimom:是給使用者用的,直接放入VB.net的語法中轉出。

To 史奴比:有試過,但錯誤。

執行右述T-SQL:select * into [Excel 8.0;HDR=Yes;Database=D:\ Customer.xls].[Custom$] from [contact]後,
出現了『指定的結構描述名稱 "Excel 8.0;HDR=Yes;Database=D:\ Customer.xls" 不存在,或您沒有使用它的權限。』的錯誤訊息。
本篇文章回覆於2016-11-22 17:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
都放入vb.net了,怎麼不直接用vb.net轉excel?

你的sql server express是在其他電腦吧?
沒記錯的話,你存檔,是存在其他電腦上,並不會存在本機上
本篇文章回覆於2016-11-23 15:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

HB
檢舉此回應
感謝Daimom的協助說明。

若要直接用vb.net轉excel?只會由Datagridview每一筆,每一個欄位跑Loop,如此作法,需花太多時間,所以想Datagridview的資料也是經由T-Sql撈出填入,不如直接由T-sql轉出至Excel檔案。

sql server express是在自己的電腦上,存檔也是在自己電腦上,程式完成後,變更IP後,會存到其它電腦Server上。
本篇文章回覆於2016-11-23 17:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

Daimom
捐贈 VP 給 Daimom 檢舉此回應
呃?為什麼還要用datagridview?
epplus能直接轉喔
ref. http://stackoverflow.com/questions/13669733/export-datatable-to-excel-with-epplus


本篇文章回覆於2016-11-24 09:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

HB
檢舉此回應
再次感謝Daimom的協助說明。

參考提供網頁資訊後,發現是C#語言,且EPPlus好像也是C#寫的,對C#沒有深入,需要Try & Error一番,還不知能否悟得真意。
本篇文章回覆於2016-11-24 19:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
vb.NET能寫,
只是你要找一下,而且多為原文。
本篇文章回覆於2016-11-25 08:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

HB
檢舉此回應
考量時間及3rd Party的因素,將選擇直接由Data Table轉出至Excel方式,以後若有更好的方式,再進行修改。
不過,還是感謝Daimom的資訊提供。
本篇文章回覆於2016-11-28 16:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.