3

我的 asp.net 应用程序将 gridview 数据导出到一个 excel 文件。但是,我还需要在显示 gridview 值之前输入客户信息。

gvCustomerPayment.DataSource = ViewState["data"];
gvCustomerPayment.AllowPaging = false;
gvCustomerPayment.DataBind();

gvCustomerPayment.RenderControl(hw);
gvCustomerPayment.Rows[2].Cells[0].Text = Convert.ToString("Customer Name: " + dr["FirstName"] + dr["LastName"]);  

gridview 数据显示得非常好。我的代码块中的最后一行Convert.ToString("Customer Name:"); 需要在单元格 A2 中(见下图中红色部分)。

在此处输入图像描述

我搜索了 S/O 和谷歌,但没有任何帮助。有什么建议么?

4

2 回答 2

0

我认为有两种方法。

  1. 您可以使用带有宏代码的 excel 模板。但是这种方式很烦人。

  2. 您可以使用 NPOI 库将一些值写入指定的单元格。NPOI 非常易于使用。这是链接: http: //npoi.codeplex.com/

于 2012-08-08T02:45:03.880 回答
0

将控件放在要导出的所有详细信息的 div 中。将 div 导出到 Excel。

让aspx文件变成这样

  <div id="divExport" runat="server">
    <div id="dvheads" runat="server">
        <b>
          <label id="lblCustomerName" runat="server"></label><br /><br />
          <label id="lblAddress" runat="server"></label><br /><br />
          <label id="lblPin" runat="server"></label>
            </b>
    </div>
        <br />

        <asp:GridView ID="GVLoans" runat="server" CellPadding="4" ForeColor="#333333"  AutoGenerateColumns="False" >
            <AlternatingRowStyle BackColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#EFF3FB" HorizontalAlign="left" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#F5F7FB" />
            <SortedAscendingHeaderStyle BackColor="#6D95E1" />
            <SortedDescendingCellStyle BackColor="#E9EBEF" />
            <SortedDescendingHeaderStyle BackColor="#4870BE" />
            <Columns>
                <asp:TemplateField>
            <HeaderTemplate>Sl No</HeaderTemplate>
            <ItemTemplate>
            <asp:Label ID="lblSRNO" runat="server" 
                Text='<%#Container.DataItemIndex+1 %>'></asp:Label>
            </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
            </Columns>
        </asp:GridView>

        <br />
        </div>

在 .cs 文件中,导出代码如下所示

 protected void btnSave_Click(object sender, EventArgs e)
 {
    Response.Clear();
    Response.AddHeader("content-isposition",attachment;filename=testExport.xls");
    Response.Charset = "";
    Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    divExport.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();
 }
于 2015-07-31T09:28:58.483 回答