欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > HTML >内容正文

HTML

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

发布时间:2025/5/22 HTML 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 导出excel表格,前端和后台导出 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

 

前段导出:

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

  然后写导出方法:

  • tableToExcel: function (dataSource) {  
  •                 console.log(dataSource);  
  •                 //列标题,逗号隔开,每一个逗号就是隔开一个单元格  
  •                 var data = "日期,城市名称,设备,网元,告警标题,发生时间,恢复时间,恢复历时\n";     
  •                 //增加\t为了不让表格显示科学计数法或者其他格式        
  •                 for(var i = 0 ; i < dataSource.length ; i++ ){          
  •                     for(var item in dataSource[i]){              
  •                         data+=method.GB2321TOUFT8(dataSource[i][item])+'\t';    
  •                     }          
  •                     data+='\n';        
  •                 };   
  •                 //data = method.GB2321TOUFT8(data);  
  •                 console.log(data);  
  •                 var blob = new Blob([data], { type: 'text/csv' }); //new way   
  •                 var csvUrl = URL.createObjectURL(blob);   
  •                 document.getElementById("mylink").href = csvUrl;  
  •                   
  •             },
  • 导出可以导出,但是用window7自带的excel打开就是乱码,用记事本查看编码是utf_8编码,转换成ANSI编码就不乱码了,查了了ANSI编码就是GB2321编码,找了很多转换方法没有转换过来,让客户自己转换编码不实际,所以放弃,用后台导出。

     

     后台导出:

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

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

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

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

     

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

     

    转载于:https://www.cnblogs.com/grasslucky/p/9953571.html

    总结

    以上是生活随笔为你收集整理的导出excel表格,前端和后台导出的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。