Javascript 如何在exceljs中自动调整列宽
我必须使用Javascript 如何在exceljs中自动调整列宽,javascript,excel,typescript,exceljs,Javascript,Excel,Typescript,Exceljs,我必须使用exceljs自动调整列宽。 “我的excel”必须是动态的,并且只能在excel中保存用户将在请求中提供的列。对于这种情况,我提供以下语法: workSheet.getRow(1).values = dto.columns; 使用dto.columns中提供的名称将列名保存在第一行 但我必须为每列设置宽度,我尝试以下方法: for(let i=0; i <= dto.columns.length-1; i++) { workSheet.columns
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}
]
}
for(让i=0;i迭代单元格,并以这种方式检查每个单元格的长度
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;
});
工作表.columns.forEach(函数(列,i){
var maxLength=0;
列[“eachCell”]({includeEmpty:true},函数(单元格){
var columnLength=cell.value?cell.value.toString()。长度:10;
如果(columnLength>maxLength){
maxLength=列长度;
}
});
列宽=最大长度<10?10:最大长度;
});
Ashish的答案有效。谢谢
若要忽略第一个单元格中的序列号,请执行以下操作:
参考:
worksheet.columns.forEach(function (column, i) {
if(i!==0)
{
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;
}
});
工作表.columns.forEach(函数(列,i){
如果(i!==0)
{
var maxLength=0;
列[“eachCell”]({includeEmpty:true},函数(单元格){
var columnLength=cell.value?cell.value.toString()。长度:10;
如果(columnLength>maxLength){
maxLength=列长度;
}
});
列宽=最大长度<10?10:最大长度;
}
});
什么是“每个单元格”这是某种属性吗?