• 二、IE下导出Excel乱码——C#踩坑记


    导出Excel在谷歌没问题,在IE下就。。。不得不吐槽,我用微软的技术导出微软的东西居然乱码,在谷歌居然不乱码。。。

    解决办法:先贴高手的 https://blog.csdn.net/u014353113/article/details/84784680

     /// <summary>
            /// 通过流导出Execl文件
            /// </summary>
            /// <param name="stream">Execl流</param>
            /// <param name="fileName">导出Execl文件名(无需加扩展名)</param>
            /// <returns></returns>
            public static HttpResponseMessage ExportExecl(Stream stream, string fileName)
            {
                var file = stream;
                fileName += DateTime.Now.ToString("yyyyMMddHHmmss");
                //string csv = _service.GetData(model);
                HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
                result.Content = new StreamContent(file);
                //a text file is actually an octet-stream (pdf, etc)
                //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
    
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/ms-excel");
                //we used attachment to force download
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                result.Content.Headers.ContentDisposition.FileName = clFielName(fileName + ".xls");
                return result;
            }
    /// <summary>
         /// 解决IE文件名乱码方法
         /// </summary>
         /// <param name="fileName">文件名</param>
         /// <returns></returns>
        public static string clFielName(string fileName)
         {
             System.Web.HttpContext curContext = System.Web.HttpContext.Current;
             string outputFileName = null;
             string browser = curContext.Request.UserAgent.ToUpper();
             if (browser.Contains("MS") == true && browser.Contains("IE") == true)
             {
                 outputFileName = System.Web.HttpUtility.UrlEncode(fileName);
             }
             else if (browser.Contains("FIREFOX") == true)
             {
                 outputFileName = """ + fileName + """;
             }
             else
             {
                 outputFileName = System.Web.HttpUtility.UrlEncode(fileName);
             }
             return outputFileName;
         }
  • 相关阅读:
    几个关于文本文件、字符串、编码的函数
    海量数据解决思路之Hash算法
    从头到尾彻底解析哈希表算法
    几个 GetHashCode 函数
    DELPHI指针的使用
    关于Delphi中的字符串的详细分析
    TStringList常用操作
    Pascal 排序算法
    Delphi THashedStringList用法
    Delphi代码创建形式规范 1.0
  • 原文地址:https://www.cnblogs.com/cvol/p/12362737.html
Copyright © 2020-2023  润新知