簡體   English   中英

將網格視圖數據導出到Excel時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM