最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

实例剖析js如何导出报表

来源:懂视网 责编:小采 时间:2020-11-27 19:56:51
文档

实例剖析js如何导出报表

实例剖析js如何导出报表:项目中签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js导出表格。本篇文章给大家分享的是实例剖析js如何导出报表
推荐度:
导读实例剖析js如何导出报表:项目中签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js导出表格。本篇文章给大家分享的是实例剖析js如何导出报表

项目中签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js导出表格。本篇文章给大家分享的是实例剖析js如何导出报表的操作详解,内容挺不错的,希望可以帮助到有需要的朋友

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

一:导入jquery

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

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

<table id="mytab" border="1"> 
<tr> 
<th>Month</th> 
<th>Savings</th> 
</tr> 
<tr> 
<td>January</td> 
<td>$100</td> 
</tr> 
</table> 
 <input value="开始导出" type="button" id="export" onclick="method5('mytab')"> //参数为table的id

三:js代码

<script type="text/javascript"> 
//打印表格
var idTmr; 
function getExplorer() { 
var explorer = window.navigator.userAgent; 
//ie 
if (explorer.indexOf("MSIE") >= 0) { 
return 'ie'; 
} 
//firefox 
else if (explorer.indexOf("Firefox") >= 0) { 
return 'Firefox'; 
} 
//Chrome 
else if (explorer.indexOf("Chrome") >= 0) { 
return 'Chrome'; 
} 
//Opera 
else if (explorer.indexOf("Opera") >= 0) { 
return 'Opera'; 
} 
//Safari 
else if (explorer.indexOf("Safari") >= 0) { 
return 'Safari'; 
} 
} 
function method5(tableid) { 
if (getExplorer() == 'ie') { 
var curTbl = document.getElementById(tableid); 
var oXL = new ActiveXObject("Excel.Application"); 
var oWB = oXL.Workbooks.Add(); 
var xlsheet = oWB.Worksheets(1); 
var sel = document.body.createTextRange(); 
sel.moveToElementText(curTbl); 
sel.select(); 
sel.execCommand("Copy"); 
xlsheet.Paste(); 
oXL.Visible = true; 
try { 
var fname = oXL.Application.GetSaveAsFilename("Excel.xls", 
"Excel Spreadsheets (*.xls), *.xls"); 
} catch (e) { 
print("Nested catch caught " + e); 
} finally { 
oWB.SaveAs(fname); 
oWB.Close(savechanges = false); 
oXL.Quit(); 
oXL = null; 
idTmr = window.setInterval("Cleanup();", 1); 
} 
} else { 
tableToExcel(tableid) 
} 
} 
function Cleanup() { 
window.clearInterval(idTmr); 
CollectGarbage(); 
} 
var tableToExcel = (function() { 
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( 
s) { 
return window.btoa(unescape(encodeURIComponent(s))) 
}, format = function(s, c) { 
return s.replace(/{(\w+)}/g, function(m, p) { 
return c[p]; 
}) 
} 
return function(table, name) { 
if (!table.nodeType) 
table = document.getElementById(table) 
var ctx = { 
worksheet : name || 'Worksheet', 
table : table.innerHTML 
} 
window.location.href = uri + base64(format(template, ctx)) 
} 
})() 
</script>

坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

实例剖析js如何导出报表

实例剖析js如何导出报表:项目中签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js导出表格。本篇文章给大家分享的是实例剖析js如何导出报表
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top