js导出带格式的表格(包括单元格合并,字体样式等)

function HtmlExportToExcelForEntire() {
			var uri = 'data:application/vnd.ms-excel;base64,',
				template =
				'<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>{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 (name, userList) => {
				var tableTest = document.createElement('table');
				tableTest.innerHTML = this.assemblyData(userList);
				var ctx = {
					worksheet: name || 'Worksheet',
					table: tableTest.innerHTML
				}
				var alink = document.createElement('a');
				alink.href = uri + base64(format(template, ctx));
				alink.download = name + ".xls";
				alink.style.display = 'none';
				document.body.appendChild(alink);
				alink.click();
				alink.parentNode.removeChild(alink);
			}
		}

		function assemblyData(data) {
			var tHeader = `<tr>
			<th>编号</th>
			<th>负责人</th>
			</tr>`;
			var tBody = '';
			for (var item of data) {
				tBody += '<tr>'
				tBody +=
					`<td>${item.iid}</td>
			<td>${item.assignee.name}</td>
			`;
				tBody += '</tr>'
			}
			var htmlData = tHeader + tBody;
			return htmlData;
		}

  调用方式:

HtmlExportToExcelForEntire()('导出的表格名称',data);

转载于:https://www.cnblogs.com/wangyunhui/p/10369471.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值