js 对已知数组数据的导出EXCEL
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相关推荐
- 数据的导出Excel表
数据的导出Excel表 1.原理 点击前端页面的按钮函数,函数里面去调用后端对应对的请求地址,这个请求地址所对应的方法再去调用业务层,业务层再去持久层拿到数据,返回给控制层,控制层将数据封装为比特 ...
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
代码: 1 /// <summary> 2 /// HTML Table表格数据(html)导出EXCEL 3 /// </summary> 4 /// <param n ...
- MSSQL数据导入导出Excel的相关代码
MSSQL数据导入导出Excel的相关代码 参考: https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926 1 Export data to e ...
- C#窗体将DGV控件中数据导入导出Excel表
目录 界面图: 效果视频: 一:将DGV数据导出到Excel表中 二:将Excel表数据导入到DGV中 三:界面全部代码 界面图: 效果视频: DGV数据导入导出Excel 一:将DGV数据导出到Ex ...
- JAVA语言(POI数据导入导出Excel)
POI数据导入导出Excel(样式可以自己设置) //----------------------------Controller层 --------------------------------- ...
- 大数据导出excel大小限制_大数据量导出Excel的方案
测试共同条件: 数据总数为110011条,每条数据条数为19个字段. 电脑配置为:P4 2.67GHz,1G内存. 一.POI.JXL.FastExcel比较 POI.JXL.FastExcel均为j ...
- java统计数据并导出Excel
业务代码: @RequestMapping(value = "/exportDepartStatistics.html")@ResponseBodypublic HashMap&l ...
- 大数据量导出Excel ---待测试
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /*--数据导出EXCEL 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件 如果文件不 ...
- easypoi导出数值型_SpringBoot使用EasyPoi进行数据导入导出Excel(一)
在实际项目开发中,对于Excel的导入导出还是很常见的需求,比如说将数据根据模板批量导入到数据库中,以及将数据库中的数据批量导出陈Excel的形式 现有需求: 下载固定的导入Excel模板 导入Exc ...
最新文章
- 【学习】009 NIO编程
- linux的wc是什么命令,linux中的wc命令
- PMP读书笔记(第2章)
- passive模式 tcp_FTP主动模式和被动模式的比较
- 迷你星域冒险服务器维护中,迷你世界星域冒险
- 我的梦想——吃喝玩乐
- ARM开发6.3.4 基础实训( 4 ) 两个 LED 显示二位数(动态显示)--LPC21XX
- Python综合知识随笔
- reboot流程简述
- 一个程序员血淋淋的教训,心态没了,世界坍塌了
- HDU-5755-Gambler Bo-高斯消元
- ebx 与 ebp的作用 ---- 总线接口部件
- 贝塞尔曲线 弯曲动画ios_用贝塞尔曲线弯曲
- viper4android小米活塞,打造小米手机终极HIFI 有效提升小米手机音质
- 理解围绕软件技术标准的上层动机和力量
- 优化问题---梯度、方向导数、法线
- python 抓取lol主播排行
- 热修复系列——Android热修复技术进阶篇
- 【DG】Oracle 19c使用dbca来搭建物理DG--主rac备rac
- 讯飞语音输入法解包即用,绿色便携免安装版