簡體   English   中英

ASp.NET:建議一個最佳選項,以允許用戶以Excel格式在客戶端下載數據網格中的數據

[英]ASp.NET: suggest a best option to allow the user to download the data in the datagrid in the client side in Excel format

請提出最佳選擇,以允許用戶以excel格式將datagridView中的數據從頁面下載到客戶端計算機。

我有一個綁定到datagrid視圖的數據集,甚至可以將數據集中的數據下載到客戶端的Excel中。

請問是否有可能生成一個excel並允許用戶在客戶端下載它?

我正在使用asp.Net,C#,SQL Server,Excel。

請幫忙 !

我建議您輸出逗號分隔值(CSV)文件。 它們相對容易地為解決方案編寫代碼,您可以將它們直接寫出而無需進行互操作,並且它們可以在Excel中直接打開。

Excel可以將HTML表直接讀取到電子表格中。 您只需要向下發送網頁中顯示的相同數據(減去例如超鏈接),並將Content-Disposition標頭設置為attachment並使用合適的mime類型使客戶端打開Excel。 然后,Excel將下載的HTML讀入工作表。

我們在一些應用程序中做到了這一點。 這實際上並不難:我們使用相同的aspx頁面(向其發送參數以表明我們希望從aspx生成一個excel文件),並使用幾行代碼將aspx生成為xls文件。

  1. Page_Load方法中的第一行代碼應為:

     //open as excell file Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; string FileName = this.Page.ToString().Replace("ASP.", "") + ".xls"; // so the file can be saved as excel Response.AppendHeader("content-disposition", "filename=\\"" + FileName + "\\";attachment"); 
  2. 在此模式下,請務必禁用ViewState,這一點很重要。 否則可能會完全混淆Excel並產生錯誤。

這就是我們要做的,而且效果很好。

我應該補充一點,微軟的建議是在將GridView導出到Excel時將其寫入HtmlTextWriter,以確保生成的HTML是Excel可以理解的HTML。 這很容易做到(除了生成的異常,但很容易克服),在以下兩篇文章中對此進行了很好的解釋: Gridview導出到ExcelGridView導出到Excel的廣泛研究

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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