[英]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中直接打開。
可以使用MS Office Interop庫對解決方案進行編碼。
以下示例可能會為您提供幫助:
http://www.codeproject.com/KB/office/datasettoexcel.aspx
http://www.eggheadcafe.com/articles/20050404.asp
http://support.microsoft.com/kb/319180
這最后一個很漂亮。 它只是將DataGrid轉換為Excel電子表格... http://tim.mackey.ie/HowtoExportADatasetToExcelCAspnet.aspx
Excel可以將HTML表直接讀取到電子表格中。 您只需要向下發送網頁中顯示的相同數據(減去例如超鏈接),並將Content-Disposition
標頭設置為attachment
並使用合適的mime類型使客戶端打開Excel。 然后,Excel將下載的HTML讀入工作表。
我們在一些應用程序中做到了這一點。 這實際上並不難:我們使用相同的aspx頁面(向其發送參數以表明我們希望從aspx生成一個excel文件),並使用幾行代碼將aspx生成為xls文件。
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");
在此模式下,請務必禁用ViewState,這一點很重要。 否則可能會完全混淆Excel並產生錯誤。
這就是我們要做的,而且效果很好。
我應該補充一點,微軟的建議是在將GridView導出到Excel時將其寫入HtmlTextWriter,以確保生成的HTML是Excel可以理解的HTML。 這很容易做到(除了生成的異常,但很容易克服),在以下兩篇文章中對此進行了很好的解釋: Gridview導出到Excel和GridView導出到Excel的廣泛研究
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.