5 javascript excel typescript exceljs
我必须使用exceljs. 我的 excel 必须是动态的,并且只在 Excel 中保存用户将在请求中提供的列。对于这种情况,我提供了以下语法:
workSheet.getRow(1).values = dto.columns;
Run Code Online (Sandbox Code Playgroud)
将列名保存在第一行,名称在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}
]
}
Run Code Online (Sandbox Code Playgroud)
但这对我没有任何影响:
有人能告诉我如何autosize为这个问题创建一个函数吗?
谢谢你的帮助
Ash*_*h S 12
您迭代单元格并以这种方式检查每个单元格的长度
worksheet.columns.forEach(function (column, i) {
var maxLength = 0;
column["eachCell"]({ includeEmpty: true }, function (cell) {
var columnLength = cell.value ? cell.value.toString().length : 10;
if (columnLength > maxLength ) {
maxLength = columnLength;
}
});
column.width = maxLength < 10 ? 10 : maxLength;
});
Run Code Online (Sandbox Code Playgroud)
小智 10
它对我有用,你可以这样做:
private AdjustColumnWidth(worksheet) {
worksheet.columns.forEach(column => {
const lengths = column.values.map(v => v.toString().length);
const maxLength = Math.max(...lengths.filter(v => typeof v === 'number'));
column.width = maxLength;
});
}
Run Code Online (Sandbox Code Playgroud)