簡體   English   中英

使用javascript從html表導出到excel時隱藏列

[英]Hide column while exporting to excel from html table using javascript

我有一個 html 表,我必須將其導出到 excel ,但是在這樣做時,我不希望導出某些 td 元素。 當我應用 javascript 來隱藏 td 時,更改僅應用於視圖表單,而不應用於導出的內容。

在這種情況下需要有關如何導出的幫助。

我在一頁中包含了 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>

在這里我想隱藏包含跨度類“hillbillyForm”的 td

我正在使用的 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>

所以我的理解是你想要刪除所有與類hillbillyForm 有直接子級的TD。

你可以這樣做:

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);
}

js小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM