问 题 背 景
遇到一个项目,要实现结果导出Excel文件,不仅要导出指定格式的Excel文件还要导出和页面显示效果一样有条件规则的颜色样式等。通过js实现指定页面区域并可实现带if条件结果的样式导出Excel。
<button id="export" style="display:none;background-color:#6293BB;height:35px" type="button" onclick="tableToExcel('testId','(Excel文件名)')">导出</button>
<script>
function base64 (content) {
return window.btoa(unescape(encodeURIComponent(content)));
}
/*
*@tableID: table标签的Id
*/
function tableToExcel(tableID,fileName){
var ofMonth=$("#ofMonth").val().replace("-", "年")+"月";
var table = document.getElementById(tableID);
var excelContent = table.innerHTML;
var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
excelFile += "<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>("+ofMonth(传入参数)+")@fileName: 要生成excel文件的名字(不包括后缀,可随意填写)</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head>";
excelFile += "<body><table border='1'>";
excelFile += excelContent;
excelFile += "</table></body>";
excelFile += "</html>";
var link = "data:application/vnd.ms-excel;base64," + base64(excelFile);
var a = document.createElement("a");
a.download =ofMonth+fileName+".xls";
a.href = link;
a.click();
}
</script>
3、table代码
<table id="testId" border="1" style="width:1500;border-color:black;border-collapse:collapse;">
<tr style="height:25;font-weight:bold;font-size:20">
<th colspan=14>导出表<span id="dtMonth"></span></th>
</tr>
<tr style="height:25;font-weight:bold;font-size:20">
<th colspan=14>测试标题</th>
</tr>
<tr style="font-weight:bold;background-color:#dcdcdc">
<th rowspan=2 style="width:50">序号</th>
<th rowspan=2 style="width:250">测试标题</th>
<th style="width:100">测试标题</th>
<th colspan=3 style="width:300">测试标题</th>
<th colspan=8 style="width:800">测试标题</th>
</tr>
<tr style="font-weight:bold;background-color:#dcdcdc">
<th style="width:100">测试标题</th>
<th style="width:100">测试标题</th>
<th colspan=2 style="width:200">测试标题</th>
<th style="width:100">测试标题</th>
<th style="width:100">测试标题</th>
<th colspan=2 style="width:200">测试标题</th>
<th colspan=2 style="width:200">测试标题</th>
<th style="width:100">测试标题</th>
<th style="width:100">测试标题</th>
</tr>
<tbody id="content1">
</tbody>
</table>
4、数据部分条件样式部分代码
html+="<tr style='text-align:center;'>"+"<td>"+index+"</td>"+"<td>"+item.testdata+"</td>"
if (item.testdata!=0){if(item.testdata>=cuslog.avgitem.testdata){
html+="<td style='background-color: blue;'>"+item.testdata.toFixed(4)+"</td>"
}else if(item.testdata>=cusloy.avgitem.testdata){
html+="<td style='background-color: yellow;'>"+item.testdata.toFixed(4)+"</td>"
}else{
html+="<td style='background-color: green;'>"+item.testdata.toFixed(4)+"</td>"
}}else{
html+="<td style='background-color: red;'>"+item.testdata.toFixed(4)+"</td>"}
原文地址:https://blog.csdn.net/weixin_57332529/article/details/129089816
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_8888.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。