我使用jquery代码将表数据导出到excel文件中,得到here的代码
但提供的客户文件名不起作用,它采用随机文件名。
如何从代码中提供自定义文件名。
<script>
$(function() {
$("button").click(function(){
$("#example").table2excel({
exclude: ".noExl",
name: "Employee"
});
});
});
</script>
答案 0 :(得分:1)
1.打开jquery.table2excel.js
2.Find function getFileName(settings)
3.更改为
function getFileName(settings) {
return ( settings.filename ? settings.filename : settings.name ) +
( settings.fileext ? settings.fileext : ".xls" );
}
当你调用jquery2excel时,settings.name是自定义js脚本的变量 在我的例子中它看起来像
$(".generateXLS").click(function(){
var idOfTable = $(this).attr("data-rel");
var tableName = $(this).attr("data-table-name");
$("#tableN"+idOfTable).table2excel({
name: tableName
});
});
答案 1 :(得分:0)
此插件中的name
变量引用工作表的名称,而不是Excel文件的名称。
如果您希望能够更改文件名,则必须稍微破解插件代码,或者只使用另一个符合您需求的插件或代码,例如this one(其中)您可以将文件名放在postfix
变量中。
答案 2 :(得分:0)
您可以破解table2excel jquery以提供下载的自定义名称,如下所示:
来自你的js:
<script>
$(function() {
$("button").click(function(){
$("#example").table2excel({
exclude: ".noExl",
name: "Employee.txt" //This name will be passed for download
});
});
});
</script>
然后将table2excel.js中的getFileName(e.settings)调用更改为如下命名:
if (typeof msie !== "undefined" && msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
if (typeof Blob !== "undefined") {
//use blobs if we can
fullTemplate = [fullTemplate];
//convert to array
var blob1 = new Blob(fullTemplate, { type: "text/html" });
window.navigator.msSaveBlob(blob1, name ); // Changed Here
} else {
//otherwise use the iframe and save
//requires a blank iframe on page called txtArea1
txtArea1.document.open("text/html", "replace");
txtArea1.document.write(e.format(fullTemplate, e.ctx));
txtArea1.document.close();
txtArea1.focus();
sa = txtArea1.document.execCommand("SaveAs", true, name ); // Changed Here
}
} else {
link = e.uri + e.base64(e.format(fullTemplate, e.ctx));
a = document.createElement("a");
a.download = name; // Changed Here
a.href = link;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
答案 3 :(得分:0)
您无需编辑或添加任何文件名称的table2excel插件include参数。 因此,现在您有两个参数,第一个是 name 用于工作表名称,另一个参数 filename 它专用于excel文件名,您可以检查下面的代码。>
$("#example").table2excel({
exclude: ".noExl",
name: "Employee",
filename : "EmployeeFileName",
});
有关更多信息,请查看 jquery.table2excel.js 文件 它具有解释所有内容的代码行。
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel") + ".xlsx";
}