[英]Issue Exporting Grid View Data To Excel
我必須在我的網頁中翻頁,該網頁允許您搜索名稱列表,並將結果返回到網格視圖中。 顯示搜索結果時,將顯示導出按鈕。 我在那里有一個導出按鈕,供用戶單擊,它會將數據從網格視圖導出為xlsx
格式的excel。 這是我當前的代碼:
均價
<asp:TableCell>
<asp:DataGrid ID="ResultGrid" runat="server"
AutoGenerateColumns="false"
EnableViewState="false"
</asp:TableCell>
<asp:TableCell>
<asp:Button class="myClass" ID="export" runat="server" OnClick="ExportBtn_Click" Text="Export" />
</asp:TableCell>
C#
protected void ExportBtn_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=myexcelfile.xls");
Response.ContentType = "application/vnd.xls";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
ResultGrid.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
目前這款下載一個空白Excel文件......即使我的網格視圖具有搜索時它一個項目。
我的另一個問題(即使我不知道這是個皺紋)是如何導出為xlsx
而不是xls
。 如果我將xls
替換為xlsx
,則當我單擊導出按鈕(當它嘗試在excel中打開時),它告訴我格式錯誤。
總結一下,我的兩個問題是:即使在網格視圖中返回了一行,為什么在excel中什么也不返回?如何導出為xlsx
而不是xls
?
解決了 !!! excel是空白的,因為您沒有將任何值傳遞給它
protected void ExportBtn_Click(object sender, EventArgs e)
{
ResultGrid();// Datagrid function to fill value
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "myexcelfile.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter ht = new HtmlTextWriter(sw);
ResultGrid.RenderControl(ht);
Response.Write(sw.ToString());
Response.End();
}
導出到Excel時得到空白電子表格的原因是因為您未正確執行操作。
您可以使用iTextSharp之類的第三方來正確執行此操作。
實際上,我在博客中寫了一個工作示例: GridView To Excel
希望它能對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.