网页导出table到excel的方法(支持IE和谷歌浏览器)

javascript 文章 2022-09-01 12:00 2246 0 全屏看文

AI助手支持GPT4.0

网页到处table到excel的方法(支持IE和以webkit为内核的比如谷歌浏览器、FireFox浏览器的方法)

代码如下:

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,name,filename) {
	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");
//var fname="hfjdshauiwe";
		} catch (e) {
			print("Nested catch caught " + e);
		} finally {
			oWB.SaveAs(fname);
			oWB.Close(savechanges = false);
			oXL.Quit();
			oXL = null;
			idTmr = window.setInterval("Cleanup();", 1);
		}

	}
	else
	{
		tableToExcel(tableid,name,filename);
	}
}
function Cleanup() {
	window.clearInterval(idTmr);
	CollectGarbage();
}
var tableToExcel = (function() {
	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 function (table, name, filename) {
		if (!table.nodeType) table = document.getElementById(table)
		var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}

		document.getElementById("dlink").href = uri + base64(format(template, ctx));
		document.getElementById("dlink").download = filename;
		document.getElementById("dlink").click();
	}
})()


使用代码如下:

<button type="button" id="Button4" class="btn btn-primary" onclick="table2excel('tblist','name','查询结果汇总.xls')">导出到EXCEL</button>


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
执行vue create时到底做了什么
获取元素的宽高的三种办法
浏览器中的“本地存储”
不刷新页面内容,改变浏览器访问地址url
基于cornerstone.js的dicom医学影像查看浏览功能
随便看看
教育科技公司申请微信支付被拒绝? 4695
微信公众号免300认证教程 5777
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 5187
小程序广告组件通过审核,但是小程序内没有显示广告? 4962
企业微信通讯录账号被管理员误/恶意删除,怎么办? 9390
问题? 8910
如何快速搭建抽奖助手小程序(无需代码知识) 6040
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 7344
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 6671
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5999