javascript - 导出到Excel时如何隐藏表格中的第三行?

标签 javascript php export-to-excel

我有一个jquery代码可以从html表导出到excel,但是导出时留下一个空白行,我正在使用bootstrap进行表设计,如何在导出到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

最佳答案

您可以使用:

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

工作原理:

-选择tr中所有第一个td元素

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

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

关于javascript - 导出到Excel时如何隐藏表格中的第三行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404886/

相关文章:

javascript - 从本地存储获取时,ng-checked 无法识别真/假

javascript - 如何将函数传递到自己的 react 上下文提供程序中以允许您编辑状态?

javascript - 反转游戏经验公式以显示一个级别需要多少经验

javascript - Promise 链接,使用另一个请求的结果

php - 输出UTF-16?有点卡住了

php - 如何找到前面没有另一个特定单词的单词?

php - 为什么我的 Laravel 模块出现 "class not found"错误?

php - 通过 PHP 格式化 Excel 文件中的文本

javascript - 如何在 Web API 中检查文件下载是否完成

javascript - 如何将数据分离到同一 excel 文件中的新工作表