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;
         }
  • 相关阅读:
    while,dowhile,for循环和forin
    position:fixed;支持ie6,清除e6下抖动。
    数组concat()和slice()方法
    函数内arguments.callee的用法
    [转]十天学习PHP之第六天(PHP)学会添加删除修改数据 (20091125 14:26)
    [转]十天学习PHP之第三天(PHP)学会构建数据库
    [转]十天学习PHP之第二天(PHP)掌握php的流程控制
    php集成软件VertrigoServ(PHP安装)
    [转]十天学习PHP之第一天(PHP)基础知识
    PHP入门
  • 原文地址:https://www.cnblogs.com/cvol/p/12362737.html
Copyright © 2011-2022 走看看