导出到excel时如何修复此表?

时间:2017-11-24 02:15:47

标签: javascript php jquery mysql excel

我使用DataTable将数据显示为表格。它在标题顶部有几个按钮。一个按钮可以将数据导出到excel中。但是,导出的数据无法在Excel中打开,因为错误为unreadable content

经过一些调试,我发现这是由于这个原因引起的 <input type="hidden" class="note_dr_dh" value="<?php echo $row->DISPOSISI; ?>" />

我也有几个隐藏的文本框,但只有那个特定的隐藏文本框才是我的问题的根源。当我将其导出为CSV时,我发现隐藏文本框中的文本也会导出到excel,而其他文本框值则不会。它已用于我的应用中的某些功能,因此不应将其删除。

我的导出脚本:

$('.dataTables-example').DataTable({
    pageLength  : 10,
    responsive  : true,
    dom         : '<"html5buttons"B>lTfgitp',
    buttons     : [
                    {extend: 'copy'},
                    {extend: 'csv', title: "Daftar_Seluruh_Surat_<?php echo $this->session->userdata('dept'); ?>"},
                    {extend: 'excel', title: "Daftar_Seluruh_Surat_<?php echo $this->session->userdata('dept'); ?>"},
                    {extend: 'pdf', title: "Daftar_Seluruh_Surat_<?php echo $this->session->userdata('dept'); ?>"},
                    {extend: 'print',
                        customize: function (win){
                            $(win.document.body).addClass('white-bg');
                            $(win.document.body).css('font-size', '10px');
                            $(win.document.body).find('table').addClass('compact').css('font-size', 'inherit');
                        }
                    }
    ]
});

我的桌子(不是所有栏目。只有问题的那个):

<td class="text-center td_link" style="vertical-align:middle !important">
   <a style="text-decoration:none" class='a_surat' href='javascript:void(0)'><?php echo $row->ID_REQUIREMENT; ?></a>
   <input type="hidden" class="id_req" value="<?php echo $row->ID_REQUIREMENT; ?>" />
   <input type="hidden" class="note_dr_dh" value="<?php echo $row->DISPOSISI; ?>" />
   <input type="hidden" class="uploaded" value="<?php echo $row->UPLOAD_IMAGE; ?>" />
   <input type="hidden" class="stat_memo" value="<?php echo $row->STATUS; ?>" />
</td>

注意(如果这些帮助):

  • $row->ID_REQUIREMENT, $row->UPLOAD_IMAGE, $row->STATUS, $row->UPLOAD_IMAGE = VARCHAR
  • $row->DISPOSISI = TEXT;

1 个答案:

答案 0 :(得分:0)

尝试在隐藏的文本框后添加隐藏的跨度:
<input type="hidden" class="note_dr_dh" value="<?php echo $row->DISPOSISI; ?>" /><span style="display: none;"></span>

在您的数据表脚本上添加:

$('.dataTables-example').DataTable( {
    buttons: [
       {
           extend: 'excel',
           title: "Daftar_Seluruh_Surat_<?php echo $this->session->userdata('dept'); ?>",
           exportOptions: {
               stripHtml: false // to enable the element styling
           }               
       }        
    ]      
} );