将一列与pdfmake和datatables对齐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一列与pdfmake和datatables对齐相关的知识,希望对你有一定的参考价值。

尝试使用动态生成的mysql表和数据表将1列向左对齐,其他列以PDFMAKE为中心,如果禁用分页,我可以使用代码,但是通过分页它只能证明屏幕上显示的前25行, 有任何想法吗?

$(document).ready(function() {
$("#loops").DataTable( {
  dom:
  "<'row'<'col-sm-3'l><'col-sm-6 text-center'B><'col-sm-3'f>>" +
  "<'row'<'col-sm-12'tr>>" +
  "<'row'<'col-sm-5'i><'col-sm-7'p>>",
  buttons: [
    {
      extend: 'pdfhtml5',
      pagesize: 'A3',
      text: 'Export to PDF',
      orientation: 'landscape',
      customize: function (doc) {
        var rowCount = document.getElementById("loops").rows.length;
            for (i = 0; i < rowCount+1; i++) {
                doc.content[1].table.body[i][5].alignment = 'left';
            };
        doc.styles.tableHeader.fontSize = 7;
        doc.defaultStyle.fontSize = 7;
        doc.content[1].table.widths = [60, 100, 70, 70, 60, '*', 90, 20, 20]
        doc.styles.tableBodyEven.alignment = 'center';
        doc.styles.tableBodyEven.noWrap = true;
        doc.styles.tableBodyOdd.alignment = 'center';
        doc.styles.tableBodyOdd.noWrap = true;
        doc.styles.tableBodyOdd.fillColor = '#f3f3f3';
      },
    },
  'copy', 'excel'
  ]
} );
} );
答案

通过更改代码解决此问题如下

var rowCount = doc.content[1].table.body.length;
 for (i = 0; i < rowCount+1; i++) {
  doc.content[1].table.body[i][5].alignment = 'left';
};

上面的代码会将第五列更改为左对齐。如果要使标题居中使用

var rowCount = doc.content[1].table.body.length;
 for (i = 1; i < rowCount; i++) {
  doc.content[1].table.body[i][5].alignment = 'left';
};

以上是关于将一列与pdfmake和datatables对齐的主要内容,如果未能解决你的问题,请参考以下文章

Excel:VLOOKUP 将一列与另一张表匹配并连接数据

将一列与另一数据框列匹配并粘贴第二个数据中的值 - Python

将表格头部的列与主体对齐时出现问题[重复]

requirejs,datatables和pdfmake - 在虚拟文件系统中找不到未捕获的文件'Roboto-Regular.ttf'

DataTables + PDFmake = 颜色 PDF 表格单元格?

将一列中的文本与另一列匹配(vlookup + like)