excel4node lib自动调整excel单元格以适应更长的文本

Posted

技术标签:

【中文标题】excel4node lib自动调整excel单元格以适应更长的文本【英文标题】:excel4node lib to autosize excel cell in order to fit longer text 【发布时间】:2019-02-10 15:18:26 【问题描述】:

使用 excel4node 库从一些 web 表格中生成 excel 文档,当文本太长而无法容纳在一个单元格中并使单元格的宽度变大时,是否有可能自动调整单元格大小?

在documentation 他们有这两个功能:

ws.column(3).setWidth(50);
ws.row(1).setHeight(20);

但这不适合里面的文字,只会使单元格变大。将显示示例:

和我想要的输出:

该评论单元格的代码:

reducedReport.forEach((element, index) => 
        ws.cell(index + 2, 1).string(element["projectName"]);
        ws.cell(index + 2, 2).string(element["workerName"]);
        ws.cell(index + 2, 3).string(element["comment"]);
        ws.column(3).setWidth(30);
        ws.row(15).setHeight(40);
        ws.cell(index + 2, 4).string(moment(element["date"] * 1000).format("DD-MM-YYYY"));
        console.log(element["comment"]);
    );

关于评论栏。

【问题讨论】:

【参考方案1】:

您可以为单元格设置添加对齐设置:

alignment:  
    shrinkToFit: true, 
    wrapText: true

【讨论】:

【参考方案2】:

此功能尚未实现,as exposed in this GitHub issue。在那个问题中,the author is pointing to an approximation approach used by phpOffice,根据字体和内容的长度动态设置列的宽度。

【讨论】:

以上是关于excel4node lib自动调整excel单元格以适应更长的文本的主要内容,如果未能解决你的问题,请参考以下文章

Excel表怎么让单元格自动调整宽度?

无法读取未定义的属性“用户名”,excel4node 无法读取属性用户名

怎样根据内容自动调整excel表格的行高列宽?

如何让excel表格自动适应文字长度?

在排除某些单元格/行时自动调整 Excel 中的列宽

excel 根据单元格内容自动调整列宽