閱讀767 返回首頁    go 阿裏雲 go 技術社區[雲棲]


GridView導出到Excel或Word文件

 

在項目中我們經常會遇到要求將一些數據導出成Excel或者Word表格的情況

 

前台代碼:

<form runat="server">
    <div>
        <asp:GridView ID="gvPersonList" runat="server" >
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="編號" />
                <asp:BoundField DataField="Name" HeaderText="姓名" />
                <asp:TemplateField HeaderText="性別">
                    <ItemTemplate>
                        <%# eval_r("Sex").ToString()=="true"?"男":"女" %>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Age" HeaderText="年齡" />
                <asp:TemplateField HeaderText="婚否">
                    <ItemTemplate>
                        <%# Boolean.Parse(eval_r("Married").ToString())==true?"是":"否" %>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:Button ID="btnToExcel" runat="server" OnClick="btnToExcel_Click" Text="導出Excel" />
        <asp:Button ID="btnToWord" runat="server" OnClick="btnToWord_Click" Text="導出Word" />
    </div>
    </form>

 

後台代碼
protected void btnToExcel_Click(object sender, EventArgs e)

{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

 

Page page = new Page();
HtmlForm form = new HtmlForm();

GridView1.EnableViewState = false;

page.EnableEventValidation = false;

page.DesignerInitialize();

page.Controls.Add(form);
form.Controls.Add(GridView1);

page.RenderControl(htw);

 

Response.Clear();
Response.Buffer = true;

//設置導出文件的格式
Response.ContentType = "application/vnd.ms-excel";

//假定導出的文件名為data.xls
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

}

 

protected void btnToWord_Click(object sender, EventArgs e)
{
 StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

 

Page page = new Page();
HtmlForm form = new HtmlForm();

GridView1.EnableViewState = false;

page.EnableEventValidation = false;

page.DesignerInitialize();

page.Controls.Add(form);
form.Controls.Add(GridView1);

page.RenderControl(htw);

 

Response.Clear();
Response.Buffer = true;

//設置導出文件的格式
Response.ContentType = "application/ms-word";

//假定導出的文件名為data.xls
Response.AddHeader("Content-Disposition", "attachment;filename=data.doc");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

}


參考博客1:https://blog.csdn.net/zhoufoxcn/archive/2008/05/16/2450642.aspx

參考博客2:https://blog.csdn.net/rickyll/archive/2009/10/22/4714517.aspx

最後更新:2017-04-02 22:16:01

  上一篇:go Js控製css——模仿視頻網站關燈開燈
  下一篇:go 事務使用時MSDTC不可用解決辦法