分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

js excel 列表导出

发布时间:2023-09-06 01:18责任编辑:胡小海关键词:jsexcel

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
???<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
???<title>HTML表格导出到EXCEL</title>
???<script type="text/javascript" language="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 table2excel(tableid) { //整个表格拷贝到EXCEL中
???????if (getExplorer() == ‘ie‘) {
???????????var curTbl = document.getElementById(tableid);
???????????var oXL = new ActiveXObject("Excel.Application");

???????????//创建AX对象excel
???????????var oWB = oXL.Workbooks.Add();
???????????//获取workbook对象
???????????var xlsheet = oWB.Worksheets(1);
???????????//激活当前sheet
???????????var sel = document.body.createTextRange();
???????????sel.moveToElementText(curTbl);
???????????//把表格中的内容移到TextRange中
???????????sel.select();
???????????//全选TextRange中内容
???????????sel.execCommand("Copy");
???????????//复制TextRange中内容
???????????xlsheet.Paste();
???????????//粘贴到活动的EXCEL中
???????????oXL.Visible = true;
???????????//设置excel可见属性

???????????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);
???????????????//xls.visible = false;
???????????????oXL.Quit();
???????????????oXL = null;
???????????????//结束excel进程,退出完成
???????????????//window.setInterval("Cleanup();",1);
???????????????idTmr = window.setInterval("Cleanup();", 1);

???????????}

???????} else {
???????????tableToExcel(tableid)
???????}
???}

???function Cleanup() {
???????window.clearInterval(idTmr);
???????CollectGarbage();
???}
???var tableToExcel = (function() {
???????var uri = ‘data:text/xls;charset=utf-8,\ufeff,‘,
???????????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(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))

???????????var downloadLink = document.createElement("a");
???????????downloadLink.href = uri + format(template, ctx);
???????????downloadLink.download = ‘包月用户.xls‘;
???????????document.body.appendChild(downloadLink);
???????????downloadLink.click();
???????????document.body.removeChild(downloadLink);
???????}
???})()
???</script>
</head>

<body>
???<table id="targetTable" cellpadding="0" cellspacing="0" border="1">
???????<tr align="center">
???????????<th>第一列</th>
???????????<th>第二列</th>
???????????<th>第三列</th>
???????</tr>
???????<tr align="center">
???????????<td>a</td>
???????????<td>b</td>
???????????<td rowspan="2" style="border:0">
???????????????<table width="100%" cellpadding="0" cellspacing="0" border="1">
???????????????????<tr>
???????????????????????<td>1</td>
???????????????????????<td>2</td>
???????????????????</tr>
???????????????????<tr>
???????????????????????<td rowspan="2">3</td>
???????????????????????<td>4</td>
???????????????????</tr>
???????????????????<tr>
???????????????????????<td>5</td>
???????????????????</tr>
???????????????</table>
???????????</td>
???????</tr>
???????<tr align="center">
???????????<td>c</td>
???????????<td>d</td>
???????</tr>
???</table>
???<input id="Button1" type="button" value="导出EXCEL" onclick="javascript:table2excel(‘targetTable‘)" />
</body>

</html>

js excel 列表导出

原文地址:http://www.cnblogs.com/Byme/p/7553981.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved