我有一个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>
这里我想隐藏包含span类&#34; hillbillyForm&#34;
的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>
答案 0 :(得分:3)
所以我理解的是你要删除所有拥有类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)
}
}