如何使用exceljs将excelsheet行高设置为auto,以便内容可以在单元格中自动调整

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

我正在使用 exceljs npm 导出 excelsheet 中的数据。由于单元格中的内容很大,因此我希望文本包含在单元格中,并且应该有足够的高度来显示完整内容。我尝试给出固定宽度 -

worksheet.getRow(1).height = 20;

固定高度的问题是,如果我的内容大于这个尺寸,那么它就无法适合单元格,并且会显示裁剪后的文本,如屏幕截图所示。

我希望细胞看起来像这样

我已经浏览了 exceljs 文档,但没有找到任何东西。

提前致谢!

javascript node.js reactjs export-to-excel exceljs
5个回答
2
投票

您是否已经尝试过不定义行的高度?我遇到了同样的问题,我这样解决了它,这样行的高度就会自动调整。

我希望我在案例中应用的解决方案对您有用。问候。


1
投票

对我有用的是,

worksheet.addRow(temp);
const row = worksheet.lastRow;
row.getCell(3).alignment = { wrapText: true };

添加新行时,必须设置该行的第三个单元格对齐方式。

将所有行添加到该工作表中后,迭代所有行并设置对齐属性。


0
投票

你可以这样做: Foreach 数据并通过索引获取所需的行

const row = worksheet.getRow(index);
    row.height = row.height * 20 / row.width;

*注意:

  • 我固定了数字“20”,但你也可以将其设为变量

  • 在我的 Excel 中,我的数据从第四行开始,所以我这样做:

     const row = worksheet.getRow(index + 4);
    

0
投票

exceljs 库没有提供一种简单的方法来根据单元格中的内容自动调整行高。

对于临时情况,根据内容长度设置行高。它对我有用

row.height = cell.value.toString().trim().length

来自 Shivam Kubde 的评论


0
投票
Don't mention the height thats automatically take , you need to use 

let rowValue = worksheet.addRow(RecordValues);
rowValue.eachCell(cell => {
       cell.alignment = 
{ horizontal: 'center',vertical :'middle' ,wrapText: true};
})
© www.soinside.com 2019 - 2024. All rights reserved.