通过Response输出方式导出Excel

简介:         目前见过这么几种类型的导出Excel表:         1,NPIO方式,高仿Java.功能比较强大,但是比较重。         2, 前辈封装的。。。。



        目前见过这么几种类型的导出Excel表:


        1,NPIO方式,高仿Java.功能比较强大,但是比较重。


        2, 前辈封装的。。。。


           3,本文要说的。。



         吐舌头  这周五又要导个Excel表,睡觉,上面估计是觉得平台封装的导出比较重吧,要我用response方式导出excel表,一个字,没用过。还好上过百度大学~



          

 /// <summary>
        /// 获取表的标头
        /// </summary>
        /// <param name="caption">The caption.</param>
        /// <returns>System.String.</returns>
        /// <remarks>Editor:v-liuhch CreateTime:2015/5/30 19:44:44</remarks>
        private string GetHeaderName(string caption)
        {
            string headName = string.Empty;
            switch (caption)
            {
                case "SerialNo":
                    headName = "SN码";
                    break;
                case "PrizeName":
                    headName = "奖品名称";
                    break;
                case "TelPhone":
                    headName = "领取电话 ";
                    break;
                case "NickName":
                    headName = "姓名";
                    break;
                case "AwardingTime":
                    headName = "领取时间";
                    break;
                case "OkPrizeTime":
                    headName = "抽中时间";
                    break;
                default:
                    headName = " ";
                    break;
            }
            return headName;
        }

         上面一段是获取列标题的。



         接着是导出的过程:


      

  private void ExportSN(HttpContext context)
        {
            string accode = context.Request.QueryString["accode"];
            HttpResponse response = context.Response;
            string fileName = "SN码导出表-" + DateTime.Now.ToShortDateString();
            excelHeader = string.Empty;
            excelContent = string.Empty;

            DataTable dt = PrizeAdapter.Instance.SnManagerData(accode);//获取数据源
            DataRow[] dr = dt.Select();
            int colCount = dt.Columns.Count;
            string headName = string.Empty;

            //行标题
            for (int i = 0; i < colCount; i++)
            {
                headName = GetHeaderName(dt.Columns[i].Caption);
                if (i == colCount - 1)
                {
                    excelHeader += headName + "\n";
                }
                else
                {
                    excelHeader += headName + "\t";
                }
            }

            //行数据
            foreach (DataRow row in dt.Rows)
            {
                for (int i = 0; i < colCount; i++)
                {
                    if (i == colCount - 1)
                    {
                        excelContent += row[i].ToString() + "\n";
                    }
                    else
                    {
                        excelContent += row[i].ToString() + "\t";
                    }
                }
               
            }

           // ExportGotPrizeSn(context);


            response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            response.ContentType = "application/vnd.ms-excel";
            response.AppendHeader("Content-Disposition", "attachment; filename=test.xls");
            response.Write(excelHeader);
            response.Write(excelContent);
            response.Flush();
            response.End();
         
        }


       这里要注意指定的contenttype.



       但是始终有一个历史遗留问题搞不定:



       打开导出的Excel表的时候始终提示:


    


      

        有人说还是代码写的有问题,也有人说是Office的问题。。。。


 

          跪求路过大神指点~~~~~~··

      


     





目录
相关文章
|
3月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
43 0
|
6天前
|
Java API Apache
|
10天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
22 4
|
14天前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
30天前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
1月前
|
前端开发 JavaScript
💥【exceljs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了用于处理Excel文件的库——ExcelJS,相较于SheetJS,ExcelJS支持更高级的样式自定义且易于使用。表格对比显示,ExcelJS在样式设置、内存效率及流式操作方面更具优势。主要适用于Node.js环境,也支持浏览器端使用。文中详细展示了如何利用ExcelJS实现前端的Excel导出下载和上传解析功能,并提供了示例代码。此外,还提供了在线调试的仓库链接和运行命令,方便读者实践。
253 5
|
28天前
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
192 0
|
2月前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
44 2
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何直接导出excel文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。