将jQuery数据表导出到Excel定制-将第一行设为粗体

问题描述 投票:0回答:1

我有一个要导出到excel的数据表,我正在尝试自定义。我环顾四周,了解如何进行自定义,发现了一些但仍然存在问题的方法。

当您导出到excel时,第一行似乎是页面标题。我试图使这一行加粗。并尽可能用页面标题以外的其他内容代替文本。

这是我所看到的,并试图进行修改以实现我所需要的:

buttons: [
{
    extend: 'excelHtml5',
    customize: function ( xlsx ){
        var sheet = xlsx.xl.worksheets['sheet1.xml'];

        // jQuery selector to add a border
        //$('row c[r*="0"]', sheet).attr( 's', '25' );
        //$('row c[r^="C"]', sheet).attr( 's', '2' ); // third column is bold

        // Trying to make first row bold, this makes last row bold
        $('row c[r*="0"]', sheet).attr( 's', '2' );
        $(sheet.body)
            .css('font-size', '10pt');

        $(sheet.body).find('table')
            .addClass('compact')
            .css('font-size', 'inherit');
    },
    exportOptions: {
        columns: [0, 1, 2]
    },
},

[此外,在应用格式设置时,我们似乎将'attr'与第一个参数's'和数字一起使用。我如何发现25表示边框,2表示粗体?

我不知道如何操纵以下内容来实现样式更改:

    $('row c[r*="0"]', sheet).attr( 's', '2' );
    $('row c[r^="C"]', sheet).attr( 's', '25' ); 
jquery datatables export-to-excel
1个回答
0
投票

假设您已安装按钮扩展名,则以下内容将在电子表格的第一行中打印自定义标题,并使该标题变为粗体:

$(document).ready(function() {

  $('#myTable').DataTable( {
    dom: 'Bfrtip',
    buttons: [
        {
          extend: 'excel',
          customize: function ( xlsx ) {
            var sheet = xlsx.xl.worksheets['sheet1.xml'];
            $('c[r=A1] t', sheet).text( 'Custom Heading in First Row' );
            $('row:first c', sheet).attr( 's', '2' ); // first row is bold
          }
        }
    ]
  } );

});

示例:

enter image description here

关于您提到的预定义格式,可以see a list of them here

0 - Normal text
1 - White text
2 - Bold
3 - Italic
4 - Underline
etc...

用于操纵导出数据的自定义命令也在同一页面中进行了总结。但是,我认为您需要参考SheetJS以获得更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.