用JQuery导出HTML table到Excel,不能导出table中input值

发布网友 发布时间:2022-04-23 14:56

我来回答

1个回答

热心网友 时间:2022-04-23 19:59

你好!

exclude_inputs 这个属性设置的是: 是否导出输入框中的内容.
也就是说为true才是导出输入框中的内容.

$("#btn").click(function () { //点击按钮执行导出 
    $(".table tr").each(function(i, _tr){//循环表格的行
        var tds = $(_tr).find("td");//得到每行的所有列
        tds.each(function(j, _td){//循环每列
            var _ipt = $(_td).find("input");//查找每列当中的INPUT控件
            var hasInput = (_ipt.length>0)?1:0;
            if(hasInput) {
                //console.log('第'+(i+1)+'行'+(j+1)+'列含有INPUT控件');
                _ipt.attr("value", _ipt.val());//如果有INPUT控件就给它设置value值
            }
        });
    });
    $(".table").table2excel({ //选取导出的表格
        filename: "项目", //导出的文件名 
        exclude_img: true, //是否导出图片 
        exclude_links: true,
        exclude_inputs: true
    });
})

代码不复杂,看看注释就好了。
为什么要这么复杂的设置INPUT控件的value值,因为table2excel.js的源码当中是获取INPUT的value属性值,
但它得到的并不是动态赋值后的value值,所以你的数据无法导出到excel当中.

当然这种做法只是一种解决方案,最好结合你的实际情况去使用,修改源码当然也可以.

建议以后遇到类似这种问题,最好先看下源码,了解下它的执行逻辑,原理.

希望对你有帮助!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com