前端导出excel,借助file-saver导出文件

1.前端原生导出excel,借助file-saver导出文件 //导出Excel

public exportExcel(res)
{
	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">
	<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]-->
		<style type="text/css">
			table td {
				text-align: center;
			};
			.header{
				background-color:'gray'
			}
			.align-left {text-align: left !important;}
			.align-right {text-align: right !important;}
			.align-center {text-align: center !important;}
		</style>
	</head>
		<body>
			<table>{table}</table>
		</body>
	</html>`;
			
	// 下面这段函数作用是:将template中的变量替换为页面内容ctx获取到的值

		// 获取表单的名字和表单查询的内容
		
		//res是html的字符串,注意使用原生的table标签格式
		var ctx = {worksheet: 'aaaa' || 'Worksheet', table:res};
		
		let fileReader = new FileReader();
		//字符串转blob
		var blob = new Blob([this.format(template, ctx)],{type:"text/plain;charset=utf-8"});
		//blob转成base64
		fileReader.readAsDataURL(blob);
		fileReader.onloadend =function(){
			FileSaver.saveAs(fileReader.result, "excel.xls");
		};	
};
// format()函数:通过格式操作使任意类型的数据转换成一个字符串
private format (s, c) {
	return s.replace(/{(\w+)}/g,
		function(m, p) {
			return c[p];
		}
	);
}; 复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值