導出Excel 2007 (NPOI)


今天在導出Excel2007時報了個錯,問是否修復,點yes就提示修復正常了,但具體什么原因沒說,如圖

 

之前簡單的導出代碼是這樣寫的

       public static void ExportToWeb(string strFileName,IWorkbook Workbook )
        {
            HttpContext curContext = HttpContext.Current;
            // 設置編碼和附件格式  
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding = Encoding.UTF8;
            curContext.Response.Charset = "";
            curContext.Response.AppendHeader("Content-Disposition",
            "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));
            var stream = WriteToStream(Workbook);
            curContext.Response.AddHeader("Content-Length", stream.ToArray().Length.ToString());
            curContext.Response.BinaryWrite(stream.GetBuffer());
            curContext.Response.End();
}

在2003上完全行的通,網上很多小伙伴07也是這樣寫的,但我打開時報錯。

后面這樣改就可以了

        //導出流
        public static void ExportToWeb(string strFileName,IWorkbook Workbook )
        {
            HttpContext curContext = HttpContext.Current;
            curContext.Response.Charset = "UTF8";
            curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
            strFileName = System.Web.HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8);
            // 添加頭信息,為"文件下載/另存為"對話框指定默認文件名 
            curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);
            // 指定返回的是一個不能被客戶端讀取的流,必須被下載 
            curContext.Response.ContentType = "application/ms-Excel";
            // 把文件流發送到客戶端 
            Workbook.Write(curContext.Response.OutputStream);
            // 停止頁面的執行 
            curContext.Response.End();
        }

 

做個記錄,也希望幫到遇到同樣問題的伙伴。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM