我必须使用exceljs
自动调整列宽。我的Excel必须是动态的,并且只在Excel中保存用户将在请求中提供的列。对于这种情况,我提供了以下语法:
workSheet.getRow(1).values = dto.columns;
这将列名保存在第一行,名称在dto.columns
中提供。
但我必须设置宽度的每一列,我尝试这样做:
for(let i=0; i <= dto.columns.length-1; i++) {
workSheet.columns = [
{key: dto.columns[i], width: Object.keys(dto.columns[i]).length}
]
}
但这并不能让我想到
有人能告诉我如何创建一个autosize
函数来解决这个问题吗?
谢谢你的帮助
5条答案
按热度按时间ylamdve61#
您可以迭代单元格并检查每个单元格的长度
shyt4zoc2#
对我很有效,你可以这样做:
k4emjkb13#
Ashish的回答起作用了谢谢
如果第一个单元格中有,则忽略序列号:
参考:
mbzjlibv4#
我的回答可能来得有点晚,但我希望这能有所帮助。上面的例子工作得很好。只是做了一点修改,以确保一切正常工作。为了防止用s覆盖列,这是我的工作方式
gjmwrych5#
如果您发现其他解决方案在涉及
numFmt
时不起作用,特别是对于Date
值,那么这里有一个解决方案,它使用前面建议的一些概念,以及SSF库,在获取长度之前用numFmt
化单元格值。