如何使特定行加粗?

aks*_*die 4 jspdf jspdf-autotable

我正在制作一个pdf,直到现在一切正常,但我想要一些特定的行是粗体.例如,参见图片:来自jspdf-autotable的网格模板 我如何制作例如id = 1且id = 3粗体的行?在我的代码下面.

function createPDF() {
            if(vm.activeCompanyYear){
                var url = "/coci/report/registry/"+vm.activeCompanyYear;

                DataApiService.callApi(url,null,"GET").then(function(reportData){

                    if(reportData){
                        var doc = new jsPDF('p', 'pt');
                        var row = 45;
                        addPdfHeader(doc, row, "");
                        doc.printingHeaderRow = true;
                        var columns = [ "Description", vm.activeCompanyYear,vm.activeCompanyYear-1, vm.activeCompanyYear-2,vm.activeCompanyYear-3,vm.activeCompanyYear-4,"% t.o.v.'13" ];

                        var rows = [];

                        for(var j=0; j<reportData.length; j++){
                            var obj = reportData[j];

                            if (!obj.description ) {obj.description = '';}

                            if (!obj.year5 ) {obj.year5 = '';}

                            if (!obj.year4 ) {obj.year4 = '';}

                            if (!obj.year3 ) {obj.year3 = '';}

                            if (!obj.year2 ) {obj.year2 = '';}

                            if (!obj.year1 ) {obj.year1 = '';}

                            if (!obj.delta ) {obj.delta = '';}


                            /*TODO : Align data right in grid*/

                            var singleRow = [obj.description,obj.year5,obj.year4,obj.year3,obj.year2,obj.year1,obj.delta];
                            rows.push(singleRow);

                        }                       

                        doc.autoTable(columns, rows, {
                            theme : 'grid',
                            styles: {
                                    halign: 'right',
                                     },
                            headerStyles: {
                                         fillColor: [33, 150, 243],
                                         halign:'center'
                            },
                            margin : {
                                top : 100
                                },
                            columnStyles:{
                                 0: {halign:'left'}
                            }

                        });


                        vm.isLoading = false;
                        blockUI.stop();
                        /* doc.save(); */
                        vm.reportData = doc.output('datauristring');

                    }
                });
            }
        }
Run Code Online (Sandbox Code Playgroud)

Sim*_*son 7

这样的事情应该有效:

doc.autoTable({
  html: '#table',
  didParseCell: function(cell, data) {
    if (data.row.index === 0 || data.row.index === 2) {
      cell.styles.fontStyle = 'bold';
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,数据参数是未定义的,必须使用单元格参数本身,如下所示: ` didParseCell: function(cell, data) { if (cell.row.index === 0) { cell.cell.styles.fontStyle =“粗体”;} },` 不知道为什么会发生这种情况。 (2认同)
  • 嘿@Sharath,这是因为他们将函数更改为仅接收一个包含单元格和数据的参数。相反,函数(cell,data)使用函数(hookData),然后在内部分别使用hookData.data和hookData.cell (2认同)