剛好前陣子在寫WebForm的Excel匯出功能,趁著這次假日趕快整理一下,不然以後要用到又要再重找一次資料。
這次的找到可以匯出Excel的有二種,其中一篇是黑大的,其中一篇已經忘記來源了XD...
1.令人驚豔的Excel程式庫 - ClosedXML(黑暗執行緒)
2.直接透過Html做輸出
缺點為 不是真正的Excel檔案格式,因此每次開啟時都會有警告訊息,但是可以直接用語法生成Excel真的很方便阿(飄
這次要談的內容就是這個啦~如果想要自己刻的參考黑大那篇就好了!
直接來看Code吧~
public static void GridViewToExcel(HttpContext context, HttpResponse response, HttpServerUtility server, GridView gv, string name)
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
context.Response.ContentType = "application/x-excel";
response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
context.Response.AddHeader("content-disposition", "attachment;filename=" + server.UrlEncode(name));
// 如果要自訂Excel樣式,可以透過修改GridView樣式來變更
gv.RenderControl(htmlTextWriter);
context.Response.Write(stringWriter.ToString());
context.Response.End();
}
大致上的Code就是這樣,原理就是把GridView的資料輸出成XML格式後轉為xls的檔案來做儲存。
gv:GridView,如果要去修改Excel表格樣式,可以先改好GridView再輸出,Excel也是吃的到的!
name:檔案名稱(需含副檔名)
至於其他要傳進來的參數,在WebForm的程式端頁面都找的到,因此要生成Excel就變得很簡單啦~
那如果要輸入公式怎麼辦?
很簡單,假設我要讓A1的表格公式為B2,就直接再這個欄位內輸入" =B2 ",Excel裡面生出來之後就會自動帶入公式啦!
看不懂去玩一次就知道啦!
歡迎您的加入,讓這個社群更加美好!