2018年1月21日 星期日

GridView轉Excel(純手工)

緣起:
最近聽到有人提起舊版Crystal Report的簡單報表要轉到新系統去又不想繼續用crystal report維護,就著手研究如何將GridView轉成Excel,將心得寫成此篇blog.本篇blog有不足之處,日後補上,引用本篇blog不必註明出處,但程式部分有些參考網路上的資料而修改的,請注意智慧財產權!

程式參考網站:
1.ASP.NET Response.End()使用時請小心 - SlashLook
 slashlook.com/articles_20131117.html
2.[CSS]網頁資料輸出轉為Excel檔案時數字資料強制為文字呈現(含其他mso支援格式轉換)
 https://dotblogs.com.tw/blackie1019/2013/09/30/122114

3.[ASP.NET][WebControl] GridView簡易匯出Excel
 https://dotblogs.com.tw/shunnien/2013/04/11/101414

程式細節:
1.一般GridView轉Excel網路上找到的文章大多是利用RenderControl函數來做,這邊不再贅述!請自行google關鍵字"gridview轉excel"就會找到一脫拉庫的文章講如何轉以及相關注意事項!這裡要介紹的是ASP.NET網頁有使用MasterPage的,利用網路上教的RenderControl函數轉出來的報表會連同MasterPage的東西也一併轉出來,若只想將子網頁的GridView表格轉成Excel就要自己寫程式去做本來RenderControl函數自動會做的事,就是自己寫程式手動render一些HTML標籤(請參考上述第3個參考網站).

2.若直接使用Response.End()會產生錯誤的請參考上述第1個參考網站!

3.有時候將資料轉成Excel時,Excel會自作聰明將0開頭的數字自動去除開頭的0,請參考上述的第2個參考網站!

範例程式:
https://drive.google.com/file/d/1nJuQxjriRGIxJbCbZ_x8Lu24qMTOSRfN/view?usp=sharing

沒有留言:

張貼留言