热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

导出excel表格,前端和后台导出

问题:项目框架中导出不知道有什么限制,数据稍微大点导出不了,向上面请求解决,结果一圈推下来又推回来了,所以决定自己写,参考了网上很多大神的博客,开始试了前端导出,想着比较简单,但是乱码问题始终解决不了

问题:项目框架中导出不知道有什么限制,数据稍微大点导出不了,向上面请求解决,结果一圈推下来又推回来了,所以决定自己写,参考了网上很多大神的博客,开始试了前端导出,想着比较简单,但是乱码问题始终解决不了,方法也贴上来,如果有大佬会的可以指点下。

 

前段导出:

  首先绑定导出按钮的click事件,我查询是一次性查询过来的,然后数据存在全局中,调用导出方法传入数据

  然后写导出方法:

  1. tableToExcel: function (dataSource) {  
  2.                 console.log(dataSource);  
  3.                 //列标题,逗号隔开,每一个逗号就是隔开一个单元格  
  4.                 var data = "日期,城市名称,设备,网元,告警标题,发生时间,恢复时间,恢复历时\n";     
  5.                 //增加\t为了不让表格显示科学计数法或者其他格式        
  6.                 for(var i = 0 ; i < dataSource.length ; i++ ){          
  7.                     for(var item in dataSource[i]){              
  8.                         data+=method.GB2321TOUFT8(dataSource[i][item])+'\t';    
  9.                     }          
  10.                     data+='\n';        
  11.                 };   
  12.                 //data = method.GB2321TOUFT8(data);  
  13.                 console.log(data);  
  14.                 var blob = new Blob([data], { type: 'text/csv' }); //new way   
  15.                 var csvUrl = URL.createObjectURL(blob);   
  16.                 document.getElementById("mylink").href = csvUrl;  
  17.                   
  18.             },

导出可以导出,但是用window7自带的excel打开就是乱码,用记事本查看编码是utf_8编码,转换成ANSI编码就不乱码了,查了了ANSI编码就是GB2321编码,找了很多转换方法没有转换过来,让客户自己转换编码不实际,所以放弃,用后台导出。

 

 后台导出:

  后台导出也是要前段的a标签配合,写一个导出按钮,包含a标签

  查询按钮改为设置a标签href属性为后台地址

  后台路径要保持一致,为了代码复用方便,我封装了这个导出方法,传入的时候传这么几个参数(一个包含每行数据的集合,列头名集合,导出表格名字,还有request和response对象)

  封装的方法,其实也不算完全封装,有些缺陷,注意我写的是数据查询出来都要转换成string类型的,我是写死的

 

   至此结束,浏览器会询问你是否下载文件,还有导出用的是poi的SXSSFWorkbook,这是为大数据导出使用的,适合大数据量导出,还有HSSFWorkbook,但是取数据大的话容易内存泄漏,里面设置也比较多,可以研究一下,还有一种csv导出,好像性能什么更加好,这个没有研究,有研究了再写博客。

 


推荐阅读
  • 电脑f5键是什么作用
    常见问题f5常见问题韩亚整形医院源码,vscode写前端代码,ubuntu低配,tomcat下载路径乱码,爬虫_gscu,php精粹pdf,广州快速seo优化排名,aspwap网站 ... [详细]
  • 本文介绍了使用SRILM平滑Katz回退方法训练语言模型的步骤,包括测试文件的使用、模型训练过程以及困惑度的重新计算。平滑Katz回退方法通过将次数较少的N-gram组的概率减少,并将减少的概率分配给训练集中未出现的N-gram组。详细的条件概率计算过程可参考附录中的Excel表格。通过重新计算困惑度,可以评估训练得到的语言模型的质量。 ... [详细]
  • 本文详细介绍了Python open()函数的用法,包括文件操作的流程和具体的打开模式。通过该函数,可以打开文件并进行读取、写入等操作。同时,还介绍了文件路径的两种形式和不同的打开模式。 ... [详细]
  • 本文介绍了如何将PPT格式转换成PDF,并推荐了一款高效的PPT转换成PDF转换器。该转换器利用最新的超线程技术核心和多核心CPU性能,提高了转换效率和转换质量。同时,该转换器具备万能转换模式,可以轻松实现不同类型、不同内容和不同排版的PPT文件的转换。用户可以通过下载链接获取该转换器。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • Navicat premium乱码解决
    今天打开NavicatPremium,突然中文都变成乱码了,如下所示。我的版本是12.0.24(64-bit)Premium ... [详细]
  • 怎么解决oracle提示框显示不全问题
    这篇文章主要介绍“怎么解决oracle提示框显示不全问题”,在日常操作中,相信很多人在怎么解决oracle提示框显示不全问题问题上存在疑惑,小编查阅 ... [详细]
  • zabbix中文乱码的问题
    在使用zabbix时,有时候会出现中文乱码的问题,如下:因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换:1、在windows获取字体库文件在Windows上的 ... [详细]
  • Python 可视化 | Seaborn5 分钟入门 (六)——heatmap 热力图
    微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seabo ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • win7系统突然打开程序显示都是乱码怎么办?
    Win7系统打开软件后界面全是乱码怎么解决修改区域语言1、修改区域语言,是一种比较常用的方法,先从开始菜单中打开控制面板,把视图查看方式设置为“大图标”,接着找到“区域和语言 ... [详细]
  • 请教大家一个javaweb方面的问题·········
    问题问题是这样的,jsp页面统一采用的是GBK的编码格式。web服务器使用的是JBOSS。在如下查询页面中输入中文的查询条件:在点击下一页的时候,要求查询条件也进行回显。但是会出现 ... [详细]
  • PHP连接MySQL的2种方法小结以及防止乱码【PHP】
    后端开发|php教程PHP,MySQL,乱码后端开发-php教程PHP的MySQL配置报错信息:ClassmysqlinotfoundinAnswer:1.在confphp.ini ... [详细]
  • 转载处:http:www.cnblogs.comdarksirp3704198.html这里不讨论数学原理,只说明其实现和传输过程。我们先假定一个数据的发送方和一个数据的接收方(就叫小红和小 ... [详细]
  • PHP操作MySql数据库_PHP教程:链接数据库$conn@mysql_connect(localhost,root,88888888)ordie(链接错误);解决中文乱码mys ... [详细]
author-avatar
茴忆是抹不掉的伤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有