zoukankan      html  css  js  c++  java
  • 二、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;
         }
  • 相关阅读:
    利用合成数据进行时间序列分类的数据扩充方法
    基于 KubeSphere CI/CD 将 Spring Boot 项目发布至 Kubernetes
    矩阵白化
    delphi 过滤开头 结尾 全部 空格的函数
    delphi CopyFileProgressBar 拷贝文件显示进度条
    delphi 分享三个随机字符串
    delphi IsIPAdress 非正则表达式验证IP的方法
    delphi PosAnsi
    delphi公用函数
    Delphi中break,exit,abort跳出循环的比较
  • 原文地址:https://www.cnblogs.com/cvol/p/12362737.html
Copyright © 2011-2022 走看看