瀏覽器下載Excel,直接打開顯示亂碼...


情景:

瀏覽器中點擊下載文件有兩個選項:[打開][下載]

[打開]之后,提示["文件.xlsx"的文件格式和擴展名不匹配。文件可能已損壞或不安全。除非您信任其來源,否則請勿打開。是否仍要打開它?],點擊[是],看到Excel亂碼..
[下載]之后,再打開,會提示[發現"文件.xlsx"中的部分內容有問題。是否讓我們盡量嘗試恢復?如果您信任工作簿的源,請單擊""]

擴展:工作簿的"",是將"文件.xlsx",改后綴為"文件.zip"然后看到里面的xml(sharedStrings.xml) ?

x

原來代碼以及下載情景:

        byte[] streamData = getByte("file.xlsx");
            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", string.Format("attachment,filename={0}", out_file_name));
            Response.AddHeader("Content-Length", streamData.LongLength.ToString());
            Response.BinaryWrite(streamData);
            Response.Flush();
            Response.End();

更改后代碼及情景:

            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
 Response.ContentType = "application/octet-stream";//改動
            Response.AddHeader("Content-Disposition", string.Format("attachment,filename={0}", out_file_name));
            Response.AddHeader("Content-Length", streamData.LongLength.ToString());

            Response.BinaryWrite(streamData);
            Response.Flush();
            Response.End();

 

 小結:

x

本地Excel版本是2016

x

可能,Excel2007的版本不存在這個問題吧...

x

猜測:本地安裝的Excel版本和生成的Excel版本不同,下載到本地之后,本地可以修復打開不亂碼,但是直接打開不會修復,就亂碼了...


免責聲明!

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



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