提供自定义文件名在 table2excel jquery 中不起作用?
Providing custom filename is not working in table2excel jquery?
我已经使用 jquery 代码将 table 数据导出到 excel 文件,从 here
获得了代码
但提供客户文件名不起作用,它采用随机文件名。
如何从代码中提供自定义文件名。
<script>
$(function() {
$("button").click(function(){
$("#example").table2excel({
exclude: ".noExl",
name: "Employee"
});
});
});
</script>
此插件中的 name
变量是指工作表的名称,而不是 Excel 文件的名称。
如果您希望能够更改文件名,则必须对插件代码进行一些修改,或者只使用适合您需要的另一个插件或一段代码,例如 this one(其中您可以将文件名放在 postfix
变量中)。
您可以 hack 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);
}
1.Open jquery.table2excel.js
2.Find function getFileName(settings)
3.Change 到
function getFileName(settings) {
return ( settings.filename ? settings.filename : settings.name ) +
( settings.fileext ? settings.fileext : ".xls" );
}
settings.name 是您调用 jquery2excel 时自定义 js 脚本的变量
在我的示例中,它看起来像
$(".generateXLS").click(function(){
var idOfTable = $(this).attr("data-rel");
var tableName = $(this).attr("data-table-name");
$("#tableN"+idOfTable).table2excel({
name: tableName
});
});
您不必编辑或添加任何 table2excel 插件包含文件名参数。
所以现在你有两个参数,第一个是 name 它用于工作表名称,另一个参数 filename 它专用于 excel 文件名字你可以查看下面的代码。
$("#example").table2excel({
exclude: ".noExl",
name: "Employee",
filename : "EmployeeFileName",
});
有关更多信息,您可以查看 jquery.table2excel.js 文件
它有解释一切的代码行。
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel") + ".xlsx";
}
我已经使用 jquery 代码将 table 数据导出到 excel 文件,从 here
获得了代码但提供客户文件名不起作用,它采用随机文件名。
如何从代码中提供自定义文件名。
<script>
$(function() {
$("button").click(function(){
$("#example").table2excel({
exclude: ".noExl",
name: "Employee"
});
});
});
</script>
此插件中的 name
变量是指工作表的名称,而不是 Excel 文件的名称。
如果您希望能够更改文件名,则必须对插件代码进行一些修改,或者只使用适合您需要的另一个插件或一段代码,例如 this one(其中您可以将文件名放在 postfix
变量中)。
您可以 hack 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);
}
1.Open jquery.table2excel.js
2.Find function getFileName(settings)
3.Change 到
function getFileName(settings) {
return ( settings.filename ? settings.filename : settings.name ) +
( settings.fileext ? settings.fileext : ".xls" );
}
settings.name 是您调用 jquery2excel 时自定义 js 脚本的变量 在我的示例中,它看起来像
$(".generateXLS").click(function(){
var idOfTable = $(this).attr("data-rel");
var tableName = $(this).attr("data-table-name");
$("#tableN"+idOfTable).table2excel({
name: tableName
});
});
您不必编辑或添加任何 table2excel 插件包含文件名参数。 所以现在你有两个参数,第一个是 name 它用于工作表名称,另一个参数 filename 它专用于 excel 文件名字你可以查看下面的代码。
$("#example").table2excel({
exclude: ".noExl",
name: "Employee",
filename : "EmployeeFileName",
});
有关更多信息,您可以查看 jquery.table2excel.js 文件 它有解释一切的代码行。
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel") + ".xlsx";
}