1. 方法一

<a id="frontExportLogLink" href="javascript:void(0)" ng-click="exportLog()" class="btn btn-danger">导出<span class="glyphicon glyphicon-question-sign mgl10" tooltip="{{'不支持ie' | translate}}"></span></a>

function  getExplorer() {var explorer = window.navigator.userAgent ;//ieif (explorer.indexOf("MSIE") >= 0) {return 'ie';}//firefoxelse if (explorer.indexOf("Firefox") >= 0) {return 'Firefox';}//Chromeelse if(explorer.indexOf("Chrome") >= 0){return 'Chrome';}//Operaelse if(explorer.indexOf("Opera") >= 0){return 'Opera';}//Safarielse if(explorer.indexOf("Safari") >= 0){return 'Safari';}
}
vm.cacheData = "data":[{"lineNo":1,"msg":"test1"},{"lineNo":2,"msg":"test2"},
]
vm.exportLog = function() {if(getExplorer()=='ie'){//TODOvar oXL = new ActiveXObject("Excel.Application"),oWB = oXL.Workbooks.Add(),oSheet = oWB.ActiveSheet,i = 0,j;for(; i < vm.list.data.length; i++){var row = vm.list.data[i];j = 0;angular.forEach(vm.cacheData, function(item, key) {oSheet.Cells(i + 1, j + 1).value = item[key];j++;});}}else{var fileName = getExcelFileName();try {//方法1,2,3,
            tableToExcel(fileName, vm.cacheData);}catch(e) {console.log(e);notificationService.error('导出失败', false);}}
}function getExcelFileName() {var d = new Date();var curYear = d.getFullYear();var curMonth = "" + (d.getMonth() + 1);var curDate = "" + d.getDate();var curHour = "" + d.getHours();var curMinute = "" + d.getMinutes();var curSecond = "" + d.getSeconds();if (curMonth.length == 1) {curMonth = "0" + curMonth;}if (curDate.length == 1) {curDate = "0" + curDate;}if (curHour.length == 1) {curHour = "0" + curHour;}if (curMinute.length == 1) {curMinute = "0" + curMinute;}if (curSecond.length == 1) {curSecond = "0" + curSecond;}var fileName = "导入错误信息" + "_" + curYear + curMonth + curDate + "_"+ curHour + curMinute + curSecond + ".xlsx";return fileName;
}var tableToExcel = function(name, data) {var uri = 'data:application/vnd.ms-excel;base64,',template = '<html><head><meta charset="UTF-8"></head><body><table style="border: 1px solid #dee5e7">{table}</table></body></html>',base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },format = function(s, c) {return s.replace(/{(\w+)}/g,function(m, p) { return c[p]; }) }var html = '<thead><tr><th style="width: 200px; border: 1px solid #dee5e7"><span>行号</span></th><th style="width: 500px;border: 1px solid #dee5e7"><span>错误信息</span></th></tr></thead><tbody>';angular.forEach(data, function(item, key) {html += '<tr>' +'    <td style="border: 1px solid #dee5e7">' +'      <span>' + item.lineNo + '</span>' +'    </td>' +'    <td style="border: 1px solid #dee5e7">' +'          <span>' + item.msg + '</span>' +'  </td>' +'  </tr>';});html += '</tbody>';var ctx = {worksheet: name || 'Worksheet', table: html};document.getElementById("frontExportLogLink").href = uri + base64(format(template, ctx));document.getElementById("frontExportLogLink").download = name;//document.getElementById("frontExportLogLink").click();
}

2. 方法二

<script src="${staticPath}/lib/alasql.min.js"></script>
<script src="${staticPath}/lib/xlsx.core.min.js"></script>
<a id="frontExportLogLink" href="javascript:void(0)" ng-click="exportLog()" class="btn btn-danger">导出</span></a>

vm.cacheData = "data":[{"lineNo":1,"msg":"test1"},{"lineNo":2,"msg":"test2"},
]
vm.exportLog = function() {var fileName = getExcelFileName();try {//方法1,2,3,
        tableToExcel(fileName, vm.cacheData);}catch(e) {console.log(e);notificationService.error('导出失败', false);}
}function getExcelFileName() {var d = new Date();var curYear = d.getFullYear();var curMonth = "" + (d.getMonth() + 1);var curDate = "" + d.getDate();var curHour = "" + d.getHours();var curMinute = "" + d.getMinutes();var curSecond = "" + d.getSeconds();if (curMonth.length == 1) {curMonth = "0" + curMonth;}if (curDate.length == 1) {curDate = "0" + curDate;}if (curHour.length == 1) {curHour = "0" + curHour;}if (curMinute.length == 1) {curMinute = "0" + curMinute;}if (curSecond.length == 1) {curSecond = "0" + curSecond;}var fileName = "导入错误信息" + "_" + curYear + curMonth + curDate + "_"+ curHour + curMinute + curSecond + ".xlsx";return fileName;
}var tableToExcel = function(name, data) {var data = angular.copy(data);data.unshift({lineNo: '行号', msg: '错误信息'});alasql('SELECT lineNo,msg INTO XLSX("' + name + '",{headers:false}) FROM ?',[data]);
}

转载于:https://www.cnblogs.com/floraCnblogs/p/js-export-array.html

js 对已知数组数据的导出EXCEL相关推荐

  1. 数据的导出Excel表

    数据的导出Excel表 1.原理 ​ 点击前端页面的按钮函数,函数里面去调用后端对应对的请求地址,这个请求地址所对应的方法再去调用业务层,业务层再去持久层拿到数据,返回给控制层,控制层将数据封装为比特 ...

  2. asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL

    代码: 1 /// <summary> 2 /// HTML Table表格数据(html)导出EXCEL 3 /// </summary> 4 /// <param n ...

  3. MSSQL数据导入导出Excel的相关代码

    MSSQL数据导入导出Excel的相关代码 参考: https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926 1 Export data to e ...

  4. C#窗体将DGV控件中数据导入导出Excel表

    目录 界面图: 效果视频: 一:将DGV数据导出到Excel表中 二:将Excel表数据导入到DGV中 三:界面全部代码 界面图: 效果视频: DGV数据导入导出Excel 一:将DGV数据导出到Ex ...

  5. JAVA语言(POI数据导入导出Excel)

    POI数据导入导出Excel(样式可以自己设置) //----------------------------Controller层 --------------------------------- ...

  6. 大数据导出excel大小限制_大数据量导出Excel的方案

    测试共同条件: 数据总数为110011条,每条数据条数为19个字段. 电脑配置为:P4 2.67GHz,1G内存. 一.POI.JXL.FastExcel比较 POI.JXL.FastExcel均为j ...

  7. java统计数据并导出Excel

    业务代码: @RequestMapping(value = "/exportDepartStatistics.html")@ResponseBodypublic HashMap&l ...

  8. 大数据量导出Excel ---待测试

    set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /*--数据导出EXCEL 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件 如果文件不 ...

  9. easypoi导出数值型_SpringBoot使用EasyPoi进行数据导入导出Excel(一)

    在实际项目开发中,对于Excel的导入导出还是很常见的需求,比如说将数据根据模板批量导入到数据库中,以及将数据库中的数据批量导出陈Excel的形式 现有需求: 下载固定的导入Excel模板 导入Exc ...

最新文章

  1. 【学习】009 NIO编程
  2. linux的wc是什么命令,linux中的wc命令
  3. PMP读书笔记(第2章)
  4. passive模式 tcp_FTP主动模式和被动模式的比较
  5. 迷你星域冒险服务器维护中,迷你世界星域冒险
  6. 我的梦想——吃喝玩乐
  7. ARM开发6.3.4 基础实训( 4 ) 两个 LED 显示二位数(动态显示)--LPC21XX
  8. Python综合知识随笔
  9. reboot流程简述
  10. 一个程序员血淋淋的教训,心态没了,世界坍塌了
  11. HDU-5755-Gambler Bo-高斯消元
  12. ebx 与 ebp的作用 ---- 总线接口部件
  13. 贝塞尔曲线 弯曲动画ios_用贝塞尔曲线弯曲
  14. viper4android小米活塞,打造小米手机终极HIFI 有效提升小米手机音质
  15. 理解围绕软件技术标准的上层动机和力量
  16. 优化问题---梯度、方向导数、法线
  17. python 抓取lol主播排行
  18. 热修复系列——Android热修复技术进阶篇
  19. 【DG】Oracle 19c使用dbca来搭建物理DG--主rac备rac
  20. 讯飞语音输入法解包即用,绿色便携免安装版

热门文章

  1. python gis库_使用开放的python库自动化GIS和遥感工作流
  2. linux loop device
  3. 全志A33-ARM编译并安装net-tools
  4. 等额本息和等额本金,哪个还款方式更划算?
  5. js二维数组_Javascript数组
  6. jieba 词典 词频_在Hanlp词典和jieba词典中手动添加未登录词
  7. 团队行为心理学读书笔记(3)领导力背后的行为心理学
  8. Ubuntu下安装 imagej 和 Fiji
  9. UOJ310 黎明前的巧克力 FWT
  10. Web程序中使用EasyUI时乱码问题