如何匯出Excel

剛好前陣子在寫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裡面生出來之後就會自動帶入公式啦!

看不懂去玩一次就知道啦!


LINE討論群FB討論區

歡迎您的加入,讓這個社群更加美好!

聯絡方式:
FaceBook
E-Mail