如何在导出前从数据表中删除隐藏的单元格数据

Posted

技术标签:

【中文标题】如何在导出前从数据表中删除隐藏的单元格数据【英文标题】:How to remove hidden cell data from datatable before export 【发布时间】:2021-02-23 05:27:40 【问题描述】:

我正在使用 DataTable v1.10。我在 1 列中添加了一个隐藏的日期字段以对其进行正确排序。我不希望导出文件中的隐藏数据,但它显示在导出的 excel/pdf 文档中。 这是我的代码。

html 标记:

<table id="invoices-table" class="table table-sm table-responsive-md  w-100 text-nowrap">
                    <thead>
                        <tr>
                            <th>Invoice Number</th>
                            <th>Invoice Type</th>
                            <th>Invoice Date</th>
                            <th>Buyer</th>
                            <th>Status</th>
                            <th class="doNotExport"></th>
                        </tr>
                    </thead>
                    <tfoot>
                        <tr>
                            <th>Invoice Number</th>
                            <th>Invoice Type</th>
                            <th>Invoice Date</th>
                            <th>Buyer</th>
                            <th></th>
                            <th class="doNotExport"></th>
                        </tr>
                    </tfoot>
                </table>

DataTable 列的 JS 代码:

columns =
                [
                     data: 'invoiceNumber' ,
                     data: 'invoiceType' ,
                     // here I have added a hidden field because date was not sorting properly.
                     data: 'invoiceDate', render: function (data)  return data === null ? "" : "<span class='d-none'>" + moment(data, 'DD/MM/YYYY').format('YYYYMMDD') + "</span>" + data  ,
                     data: 'dataTransferObject.BuyerDtls.LglNm' ,
                     data: 'invoiceStatus' ,
                    
                        data: null,
                        render: function (data) 
                            return getButton(JSON.stringify(data));
                        ,
                    ,
                ]

在视图中它工作得很好,但是在导出到 Excel/pdf 时,隐藏字段也显示在下面的列中 如果发票日期是 02/05/2020,那么由于该隐藏元素,它在导出的文件中显示为 2020050202/05/2020

我们将不胜感激。

【问题讨论】:

你好冈社。重新您的发票日期和隐藏字段导出时如何从列数据中删除隐藏字段?谢谢 【参考方案1】:

在数据表上有一个名为 exportOptions 的选项。在该集合下columns: ':visible' 如下所示。

buttons: [
            
            
                extend: 'pdfHtml5',
                exportOptions: 
                    columns: ':visible'
                
            ,

        ]

【讨论】:

它用于可见列,而不是可见元素,我有一个隐藏的跨度元素和单个列中的实际数据。所以我需要在导出表格之前删除/排除那些隐藏的跨度元素。

以上是关于如何在导出前从数据表中删除隐藏的单元格数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有隐藏字符的空白/单元格转换为空值或以其他方式删除隐藏字符

如何设定PLSQL DEVELOPER导出的CSV文件中单元格格式为文本?

如何从静态单元格表​​格视图中删除部分

删除或隐藏单元格中的值

请教JAVA使用POI导出excel处理空白单元格的问题

Excel中 如何局部修改单元格里的内容