0
我導出一個GridView到Excel上的一個按鈕單擊事件表,但只有以下信息GridView中導出到excel給空Excel工作表
相反GridView的數據導出Excel表顯示。下面如果出口按鈕,裏面的代碼點擊
private void ExportGridView(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
同樣的代碼在ASPX的gridview的是
......
<asp:GridView ID="GridView1" runat="server" Font-Size="10pt" AllowSorting="True"
BackColor="White" BorderColor="#CCCCCC" AutoGenerateSelectButton="true"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound" OnSorting="GridView1_Sorting">
<%-- <Columns>
....................
<td> <asp:Button runat="server" ID="btnExport" Text="Export to Excel" onclick="btnExport_Click" /></td>
</tr>
</table>
</asp:Content>
如果你要綁定的GridView?你能分享完整的代碼隱藏代碼嗎? GridView數據庫綁定。 – priya777
嘗試註釋掉首次寫入響應流的部分,即'Response.Write(style);'我的理論是,因爲這是excel看到的第一件事情,而不是表格標籤,所以它不會呈現爲一張桌子。另外,我應該指出,這並不是實現這一目標的最佳方式。是的,你可以輸出一個gridview的渲染(一個html表格)到Excel中,但這實際上並不一致。查看NPOI創建Excel文檔或類似的東西。 – sovemp
@ priya777我解決了問題。其中一個原因是綁定導出按鈕單擊中的數據。 –