Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从html表导出到excel时隐藏列_Javascript_Html_Excel - Fatal编程技术网

使用javascript从html表导出到excel时隐藏列

使用javascript从html表导出到excel时隐藏列,javascript,html,excel,Javascript,Html,Excel,我有一个html表格,我必须将其导出到excel,但在这样做时,我不希望导出一些td元素。当我应用javascript隐藏td时,更改只应用于视图表单,而不应用于正在导出的内容 function TableToExcel(tableid) { var id = $('[id$="' + tableid + '"]'); var $clonedTable = $("id").clone(); $clonedTable.find('[styl

我有一个html表格,我必须将其导出到excel,但在这样做时,我不希望导出一些td元素。当我应用javascript隐藏td时,更改只应用于视图表单,而不应用于正在导出的内容

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
在这种情况下需要有关如何导出的帮助

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
我已经包括html,css和脚本都在一个页面上

<html>
<body>
<div id="myDiv">
<table id="metrics" border="1px" cellspacing="0 px" style="border-style:  solid; border-color: Black;
        border-width: thin;">
        <tr>
            <td style= "background-color: #bfbfbf;  font-size: small; color: black;">
                LOB
            </td>
            <td>
                <span class="hillbillyForm" data-displayname='LOB' style="display:none;"></span>

           </td>
       </tr>
</table>
    <input type="button" id="btnExport"  value="Export" onclick="TableToExcel('metrics');" />
</div>
</body>
    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>

高球
这里我想隐藏包含span类“hillbillyForm”的td

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
我使用的javascript是

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
函数TableToExcel(tableid){
变量id=$('[id$=''+tableid+''']');
var$clonedTable=$(“id”).clone();
$clonedTable.find('[style=“display:none”]').remove();
var strCopy=$('').html(id.clone()).html();
window.clipboardData.setData(“文本”,strCopy);
var objExcel=新的ActiveXObject(“Excel.Application”);
objExcel.visible=false;var objxcel.Workbooks.Add;var objWorksheet=objWorksheet.Worksheets(1);objWorksheet.Paste;objExcel.visible=true;
}

所以我的理解是,您希望删除所有与hillbillyForm类有直接子级的TD

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
您可以这样做:

    function TableToExcel(tableid) {

        var id = $('[id$="' + tableid + '"]');
        var $clonedTable = $("id").clone();
        $clonedTable.find('[style = "display: none"]').remove();
        var strCopy = $('<div></div>').html(id.clone()).html();

        window.clipboardData.setData("Text", strCopy);

        var objExcel = new ActiveXObject("Excel.Application");

        objExcel.visible = false; var objWorkbook = objExcel.Workbooks.Add; var objWorksheet = objWorkbook.Worksheets(1); objWorksheet.Paste; objExcel.visible = true;
    }
</script>
var form = document.getElementById(tableid),
    exportForm = form.cloneNode(true),
    elementsToRemove = exportForm.querySelectorAll('.hillbillyForm');

for (var i = elementsToRemove.length; i--;){
    var td = elementsToRemove[i].parentElement;
    if (td) td.parentElement.removeChild(td);
}

这些列在excel中仍然可见