【问题标题】:how to hide 3rd row from table while exporting to excel?导出到excel时如何隐藏表格中的第三行?
【发布时间】:2025-12-21 07:45:07
【问题描述】:

我有一个 jquery 代码可以从 html 表导出到 excel 中,但是它在导出时留下一个空白行,我正在使用引导程序进行表设计,如何在导出到 excel 时删除这个空白行。我得到了代码表here

我的 php/table 代码是-

<table id="empTable" class="table table-striped table-bordered" cellspacing="0" border="1">
    <thead class="table-th">
        <tr valign="middle">
            <th>SN</th>
            <th>Employee Name</th>                
            <th>DOB</th>
            <th>City</th>            
        </tr>
    </thead>
    <tbody>                           
            <?php 
            $count = 0;            
            foreach ($record as $key => $data) { $count+=1; 
            $employee_name=$data['employee_name'];
            $city=$data['city'];
            $dob=$data['dob'];                         
            echo "<tr>";                
            echo "<td>".$count."</td>";                
            echo "<td>".$employee_name."</td>";
            echo "<td>".$dob."</td>";
            echo "<td>".$city."</td>";           
            echo "</tr>";
            ?>                
        <?php } ?> 
    </tbody>
    <tfoot class="table-tf">  
        <tr><td colspan="4">&nbsp;</td></tr>
    </tfoot>
</table>

而我的js代码是-

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


我的输出是-

Employee Detail         
SN  Employee Name   DOB City

1   John    12-18-1983  Texas
2   Sarah   08-26-1985  CA
3   David   06-15-1986  HX
4   Nick    06-14-1982  Miami

【问题讨论】:

    标签: javascript php export-to-excel


    【解决方案1】:

    你可以使用:

    $('tr td:first-child:empty').closest('tr').hide()
    

    工作原理:

    -选择tr中所有前td元素

    -过滤元素以仅在其中为空。

    -获取最近的tr元素并将其隐藏。

    【讨论】: