Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在exceljs中自动调整列宽_Javascript_Excel_Typescript_Exceljs - Fatal编程技术网

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:最大长度;
}
});
什么是“每个单元格”这是某种属性吗?