gpt4 book ai didi

jquery - 使用 jquery 将 html 表格转为 excel

转载 作者:行者123 更新时间:2023-12-01 03:48:10 25 4
gpt4 key购买 nike

我有这个可以工作的 jquery 函数,但我需要添加一些东西。我在 table 上设置了一个过滤器来隐藏列。当我隐藏列并单击导出时,它无论如何都会使用所有字段。如何只导出未隐藏的表格列?

var write_to_excel = (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) {
if (!table.nodeType) table = document.getElementById(table) var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML
}
window.location.href = uri + base64(format(template, ctx))
}
})()​

我想我需要类似的东西。

if($(table).display.style!="none")

提前致谢。

最佳答案

最简单的方法是在将表传递给格式函数之前从表中删除列。由于无论如何您都会丢弃该页面以导航到数据 URI,因此保留隐藏列并不重要。

删除隐藏列的方式取决于最初隐藏列的方式。如果只是将 display:none 应用于隐藏的 TD,您可以通过对代码进行此更改来实现。

    return function(table, name) {
if (!table.nodeType)
table = document.getElementById(table);

$(table).find(':not(:visible)').remove();

var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML
};

window.location.href = uri + base64(format(template, ctx));
};

关于jquery - 使用 jquery 将 html 表格转为 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com