原文链接:https://blog.csdn.net/qq_37936542/article/details/78376156

需求:项目中有一个学生签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js导出表格。

如果有童鞋实现了在linux下使用poi,还请高抬贵手将poi设置路径那一段代码打赏给我看一看,不胜感激,么么哒。

注意:js导出表格是利用浏览器自带的下载功能去实现的,所以不需要定义下载路径,很好用,唯一的缺点就是,表格样式不知道怎么去定义。

一:导入jquery

  1. <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>

二:页面准备一个table和一个导出的按钮

  1. <table id="mytab" border="1">
  2. <tr>
  3. <th>Month</th>
  4. <th>Savings</th>
  5. </tr>
  6. <tr>
  7. <td>January</td>
  8. <td>$100</td>
  9. </tr>
  10. </table>
  11. <input value="开始导出" type="button" id="export" onclick="method5('mytab')">   //参数为table的id

三:js代码

  1. <script type="text/javascript">
  2. //打印表格
  3. var idTmr;
  4. function getExplorer() {
  5. var explorer = window.navigator.userAgent;
  6. //ie
  7. if (explorer.indexOf("MSIE") >= 0) {
  8. return 'ie';
  9. }
  10. //firefox
  11. else if (explorer.indexOf("Firefox") >= 0) {
  12. return 'Firefox';
  13. }
  14. //Chrome
  15. else if (explorer.indexOf("Chrome") >= 0) {
  16. return 'Chrome';
  17. }
  18. //Opera
  19. else if (explorer.indexOf("Opera") >= 0) {
  20. return 'Opera';
  21. }
  22. //Safari
  23. else if (explorer.indexOf("Safari") >= 0) {
  24. return 'Safari';
  25. }
  26. }
  27. function method5(tableid) {
  28. if (getExplorer() == 'ie') {
  29. var curTbl = document.getElementById(tableid);
  30. var oXL = new ActiveXObject("Excel.Application");
  31. var oWB = oXL.Workbooks.Add();
  32. var xlsheet = oWB.Worksheets(1);
  33. var sel = document.body.createTextRange();
  34. sel.moveToElementText(curTbl);
  35. sel.select();
  36. sel.execCommand("Copy");
  37. xlsheet.Paste();
  38. oXL.Visible = true;
  39. try {
  40. var fname = oXL.Application.GetSaveAsFilename("Excel.xls",
  41. "Excel Spreadsheets (*.xls), *.xls");
  42. } catch (e) {
  43. print("Nested catch caught " + e);
  44. } finally {
  45. oWB.SaveAs(fname);
  46. oWB.Close(savechanges = false);
  47. oXL.Quit();
  48. oXL = null;
  49. idTmr = window.setInterval("Cleanup();", 1);
  50. }
  51. } else {
  52. tableToExcel(tableid)
  53. }
  54. }
  55. function Cleanup() {
  56. window.clearInterval(idTmr);
  57. CollectGarbage();
  58. }
  59. var tableToExcel = (function() {
  60. var uri = 'data:application/vnd.ms-excel;base64,', template = '<html><head><meta charset="UTF-8"></head><body><table  border="1">{table}</table></body></html>', base64 = function(
  61. s) {
  62. return window.btoa(unescape(encodeURIComponent(s)))
  63. }, format = function(s, c) {
  64. return s.replace(/{(\w+)}/g, function(m, p) {
  65. return c[p];
  66. })
  67. }
  68. return function(table, name) {
  69. if (!table.nodeType)
  70. table = document.getElementById(table)
  71. var ctx = {
  72. worksheet : name || 'Worksheet',
  73. table : table.innerHTML
  74. }
  75. window.location.href = uri + base64(format(template, ctx))
  76. }
  77. })()
  78. </script>

结束!!!!

文末福利:

福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880

福利二:微信小程序入门与实战全套详细视频教程。

【领取方法】

关注 【编程微刊】微信公众号:

回复【小程序demo】一键领取130个微信小程序源码demo资源。

回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。

原文作者:祈澈姑娘
原文链接:https://www.jianshu.com/u/05f416aefbe1
创作不易,转载请告知

90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

js导出报表的更多相关文章

  1. js导出Excel表格

    js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...

  2. EasyUI 如何结合JS导出Excel文件

    出处:http://blog.csdn.net/jumtre/article/details/41119991 EasyUI 如何结合JS导出Excel文件 分类: 技术 Javascript jQu ...

  3. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

  4. js导出excel

    function inportEx() { $("#btnEx").text("导出中..."); var fugNumber = "";/ ...

  5. 使用 jquery.wordexport.js导出的Word排版

    js导出word文档所需要的两个插件: FileSaver.js jquery.wordexport.js 使用jquery.wordexport.js这个插件导出的word文档的排版方式: 编辑器打 ...

  6. js导出excel增加表头、mso-number-format定义数据格式

    问题1:增加表头 js导出表格时,只会导出table里的展现出的内容,如需增加表头等内容需要在页面获取的字符串中拼接表头的相关字符串,详细介绍如下: tableString:新增的表头内容字符串: c ...

  7. JS导出excel设置下载的标题/与angular结合冲突

    2017.8更新 此功能与angular结合使用时,最后一行 document.getElementById("dlink").click(); 与angular的ng-click ...

  8. [转]tableExport.js 导出excel 如果有负数或是空值 导出前面会自动加上单引号

    原文地址:https://blog.csdn.net/private66/article/details/88718285 tableExport.js  导出excel  如果有负数或是空值 导出前 ...

  9. 利用PHPExcel导出excel 以及利用js导出excel

    导出excel的方法output_excel需要依赖PHPExcel 导出csv的方法csv_export不需要 <?php /** * @author ttt */ class ExcelCo ...

随机推荐

  1. js33--责任链模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. ubuntu搭建交叉编译环境makeinfo: command not found

    解决办法:sudo apt-get install texinfo

  3. BZOJ4864: [BeiJing 2017 Wc]神秘物质(Splay)

    Description 21ZZ 年,冬. 小诚退休以后, 不知为何重新燃起了对物理学的兴趣. 他从研究所借了些实验仪器,整天研究各种微观粒子.这 一天, 小诚刚从研究所得到了一块奇异的陨石样本, 便 ...

  4. BZOJ5137: [Usaco2017 Dec]Standing Out from the Herd(广义后缀自动机,Parent树)

    Description Just like humans, cows often appreciate feeling they are unique in some way. Since Farme ...

  5. CISP/CISA 每日一题 10

    CISA 每日一题(答)一个合理建造的数据仓库应当支持下列三种基本的查询格式: 1.向上溯源和向下溯源——向上溯源是对数据进行总计:向下溯源是将数据进行细化: 2.交叉溯源——通过通用属性访问数据仓库 ...

  6. android对话框(Dialog)的使用方法

    Activities提供了一种方便管理的创建.保存.回复的对话框机制.比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

  7. do_pj--下拉代码脚本的使用

    接本目录 /home/zhangshuli/git2/vanzo_team/xulei/Platform.py 在~/bin目录下链接 ln -sf ~/git2/vanzo_team/xulei/P ...

  8. Mycat 读写分离+分库分表

    上次进过GTID复制的学习记录,已经搭建好了主从复制的服务器,现在利用现有的主从复制环境,加上正在研究的Mycat,实现了主流分布式数据库的测试 Mycat就不用多介绍了,可以实现很多分布式数据库的功 ...

  9. amazeui学习笔记--css(常用组件2)--面包屑导航Breadcrumb

    amazeui学习笔记--css(常用组件2)--面包屑导航Breadcrumb 一.总结 1.am-breadcrumb:用am-breadcrumb来声明面包屑导航控件,.am-breadcrum ...

  10. oled的一套stm32实验1

    详细的oled介绍:http://blog.sina.com.cn/s/blog_57ad1bd20102wtq8.html 整理自:https://www.cnblogs.com/wp2312139 ...