js excel导出 自定义excel文件名

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 method1(tableid, name) {// 整个表格拷贝到EXCEL中---tableid:表格id,name:工作簿名称
	var ahtml = ' <a href="#" id="exportExcel" style="display:none" ></a>';//提供给下面自定义文件名的操作
	$("#"+tableid).after(ahtml);
	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 {
			alert(2);
			var fname = oXL.Application.GetSaveAsFilename("Excel.xls",
					"Excel Spreadsheets (*.xls), *.xls");
		} catch (e) {
			print("Nested catch caught " + e);
		} finally {
			alert(3);
			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, name);
	}

}

function Cleanup() {
	window.clearInterval(idTmr);
	CollectGarbage();
}

var tableToExcel = (function() {
	var uri = 'data:application/vnd.ms-excel;base64,';
	var 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>';
	var base64 = function(s) {
		return window.btoa(unescape(encodeURIComponent(s)))
	};
	var 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
		}
		// <a href="#" id="exportExcel" style="display:none" ></a> 对应a标签
		document.getElementById("exportExcel").href = uri
				+ base64(format(template, ctx));
		document.getElementById("exportExcel").download = name + ".xls";//自定义文件名
		document.getElementById("exportExcel").click();
		// window.location.href = uri + base64(format(template, ctx));
	}
})();

在Vue2中导出Excel自定义文件名称,你可以使用一个名为tableToExcel的函数来实现。该函数接受三个参数:table(表格模板字符串),name(文件名),callback(回调方法)。你可以在项目中创建一个exportExcel.js文件,并在其中定义和导出这个函数。然后,在需要导出Excel的地方,引入这个方法并调用它,传入相应的参数即可实现导出。 具体步骤如下: 1. 在项目中创建一个exportExcel.js文件,并在其中定义一个名为tableToExcel的函数。函数接受三个参数:table、name和callback。 2. 在函数内部的实现中,你可以使用第三方库或自己编写的逻辑来将table转换为Excel文件,并自定义文件的名称。具体的转换逻辑可以根据你使用的库或自己编写的代码来实现。 3. 在函数的最后,你可以调用callback函数来完成一些回调操作,例如提示用户导出成功或执行其他逻辑。 通过这种方式,你可以在Vue2中导出Excel自定义文件名称。这个方法不仅适用于Vue框架,你也可以在其他前端框架(如Jquery、React等)中使用,只需要将封装好的方法引入即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3.0导出数据为自定义样式Excel](https://blog.csdn.net/qq_24800489/article/details/129439510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值