KanColle © 2014 DMM.com / KADOKAWA GAMES All Rights Reserved. / Animation by © Good Smile Company
ASP.NET 2.0 GridView 欄位設置 / GridView 匯出 EXCEL
#1
GridView 不顯示全部欄位
只要在GridView加上 AutoGenerateColumns="False" 再搭配 <columns></columns>
程式碼:
<asp:GridView ID="GridView1" runat="server" autogeneratecolumns="False">
    <columns>
    <asp:BoundField ReadOnly="True" HeaderText="客戶名稱" InsertVisible="False" DataField="text4" SortExpression="text4">
    </asp:BoundField>
    </columns>
</asp:GridView>
這樣GridView就只會顯示一個客戶名稱
========================================================
GridView 加入排序功能
在 GridView 加入 AllowSorting="True" OnRowCreated="GridView1_RowCreated" 再搭配 C#
ASPX
程式碼:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  AllowSorting="True" OnRowCreated="GridView1_RowCreated">
ASPX.CS

========================================================
按鈕清除GridView內容
程式碼:
    protected void Button2_Click(object sender, EventArgs e)
    {
        //GridView1.DataSource ="";
        GridView1.DataBind();
    }
GridView1.DataSource不用設也可以
========================================================
1.在 <form runat="server"></form> 中插入GridView 和 Button
2. aspx.cs 加入 Button_Click 和 VerifyRenderingInServerForm
程式碼:
    protected void Button_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "Big5";
        Response.AppendHeader("Content-Disposition", "attachment;filename=CustomerService.xls");
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.ContentType = "application/ms-excel";
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        this.GridView1.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());
        Response.Flush();
        Response.End();
    }
    public override void VerifyRenderingInServerForm(Control control)
    {

    }
注意事項:
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentEncoding = System.Text.Encoding.UTF8;
匯出檔案編碼為Default/UTF8時,EXCEL 2003讀取時會變亂碼
(但本身匯出的html是正常UTF-8)

解決方法:
把下面兩行註解掉或刪除
Response.Charset = "UTF-8";
Response.ContentType = "application/ms-excel";
取代為
程式碼:
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>");
Response.Write("\n<style type='text/css'>\ndiv {\nfont-family:'細明體';\n}\n</style>\n");
這樣就會正常了,而且Excel打開時,字體也會正常

或者用匯出的檔案用UTF-7編碼
Response.ContentEncoding = System.Text.Encoding.UTF7;
當使用UTF7時,EXCEL 2003讀取正常
(但本身匯出的html是編碼過的,無法直接讀取)
回覆


前往:


正在瀏覽這個主題的使用者: 1 位訪客