js导出复杂表头(多级表头)的excel
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table border>
<tr style="text-align: center;">
<th rowspan="2">姓名</th>
<th colspan="2">一月</th>
<th colspan="2">二月</th>
</tr>
<tr style="text-align: center;">
<th>收入</th>
<th>支出</th>
<th>收入</th>
<th>支出</th>
</tr>
<tr style="text-align: center;">
<td>张三</td>
<td>10元</td>
<td>20元</td>
<td>15元</td>
<td>25元</td>
</tr>
<tr style="text-align: center;">
<td>李四</td>
<td>100元</td>
<td>200元</td>
<td>150元</td>
<td>250元</td>
</tr>
<table>
<button onclick="tableToExcel()"">导出excel</button>
<script type="text/javascript">
function tableToExcel(){
//要导出的数据
var exportData = [
{
name: '张三',
month1: {
income: '10元',
outlay: '20元'
},
month2: {
income: '15元',
outlay: '25元'
}
},
{
name: '李四',
month1: {
income: '100元',
outlay: '200元'
},
month2: {
income: '150元',
outlay: '250元'
}
}
]
// 自定义的表格
var tableStr = ` <tr style="text-align: center;">
<th rowspan="2">姓名</th>
<th colspan="2">一月</th>
<th colspan="2">二月</th>
</tr>
<tr style="text-align: center;">
<th>收入</th>
<th>支出</th>
<th>收入</th>
<th>支出</th>
</tr>`;
for(let item of exportData) {
tableStr += `<tr style="text-align: center;">
<td>${item.name}</td>
<td>${item.month1.income}</td>
<td>${item.month1.outlay}</td>
<td>${item.month2.income}</td>
<td>${item.month2.outlay}</td>
</tr>`;
}
//Worksheet名
var worksheet = 'Sheet1'
var uri = 'data:application/vnd.ms-excel;base64,';
// 真正要导出(下载)的HTML模板
var exportTemplate = `<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">
<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name>
<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head>
<body>
<table syle="table-layout: fixed;word-wrap: break-word; word-break: break-all;">${tableStr}</table>
</body>
</html>`;
//下载模板
window.location.href = uri + base64(exportTemplate)
};
//输出base64编码
function base64 (s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
</script>
</body>
</html>
ps:要想修改导出的excel表中表格的格式,可直接在上面的模板中给相应的table、tr、td、th等标签添加css样式即可。
js导出复杂表头(多级表头)的excel的更多相关文章
- element ui表格常用功能如:导出 新增 删除 多选 跨页多选 固定表头 多级表头 合并行列 等常见需求
<template> <div class="table-cooperte"> <el-table :data="tableData&quo ...
- js导出到word、json、excel、csv
tableExport.js ///*The MIT License (MIT) //Copyright (c) 2014 https://github.com/kayalshri/ //Permis ...
- JS 导出网页中Table内容到excel
<html> <head> <script type="text/javascript" language="javascript" ...
- 导出多级表头表格到Excel
方法一:用NPOI定义多级表头导出: 引用头: using NPOI.DDF; using NPOI.OpenXmlFormats.Wordprocessing; using NPOI.HSSF.Us ...
- js导出excel增加表头、mso-number-format定义数据格式
问题1:增加表头 js导出表格时,只会导出table里的展现出的内容,如需增加表头等内容需要在页面获取的字符串中拼接表头的相关字符串,详细介绍如下: tableString:新增的表头内容字符串: c ...
- 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的格式写入 ...
- js导出excel
function inportEx() { $("#btnEx").text("导出中..."); var fugNumber = "";/ ...
- EasyUI 如何结合JS导出Excel文件
出处:http://blog.csdn.net/jumtre/article/details/41119991 EasyUI 如何结合JS导出Excel文件 分类: 技术 Javascript jQu ...
- java代码导出数据到Excel、js导出数据到Excel(三)
jsp内容忽略,仅写个出发按钮: <button style="width: 100px" onclick="expertExcel()&quo ...
- Qt实现表格树控件-支持多级表头
目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...
随机推荐
- 数学&计算机工程常用希腊字母表及其发音
- JavaScript中如何让图形旋转不会相互影响
最近在联系JavaScript 二维绘图,经常会用到旋转,前几篇博文也提到过这类问题. 但是我忘记了JavaScript二维绘图中有关旋转最核心的两个方法:save()和restore() 在w3c上 ...
- PAT甲级——A1148 WerewolfSimpleVersion【20】
Werewolf(狼人杀) is a game in which the players are partitioned into two parties: the werewolves and th ...
- Java DOM解析器 - 解析XML文档
使用DOM的步骤 以下是在使用DOM解析器解析文档使用的步骤. 导入XML相关的软件包. 创建DocumentBuilder 从文件或流创建一个文档 提取根元素 检查属性 检查子元素 导入XML相关的 ...
- 慎用margin系列3---IE6下3px bug
当我们想让一段文字出现在一个布局块的右边的时候,我们会让布局块向左浮动,然后把段落设置左布局块宽度大小的左空白.比如左布局块是.a{float:left;height: 110px;width: 28 ...
- 高级UI晋升之自定义view实战(七)
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章自定义ViewGroup实现瀑布流效果来进行详解dispatchTouch ...
- leetcode.数组.667优美的排列II-Java
1. 具体题目 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件:① 如果这个数组是 [a1, a2, a3, ... , an] ,那么 ...
- NFS挂载error:reason given by server: Permission denied
首先你得看看你的NFS服务有没有启动 然后你看看你要mount的文件夹有没有在NFS主机共享 然后再看权限对没对
- 如何在Web项目中配置Spring MVC
要使用Spring MVC需要在Web项目配置文件中web.xml中配置Spring MVC的前端控制器DispatchServlet <servlet> <servlet-name ...
- CSS3中的transform转换属性
属性 transition-property 定义对象中参与过度的属性 transition-delay 延迟 transition-duration 持续时间 transition-timing-f ...