发布于 2014-06-28 11:28:33
我在这里找到了一个片段--写测试-- https://github.com/SheetJS/js-xlsx/blob/master/tests/write.js#L14-L19
作为快速参考,ws是您的工作表。
var wscols = [
{wch:6},
{wch:7},
{wch:10},
{wch:20}
];
ws['!cols'] = wscols;发布于 2019-08-27 11:01:02
扩展该问题时,如果需要根据内容设置自动宽度,可以如下所示:
const worksheet = XLSX.utils.aoa_to_sheet(arrayOfArray);
worksheet['!cols'] = fitToColumn(arrayOfArray);
function fitToColumn(arrayOfArray) {
// get maximum character of each column
return arrayOfArray[0].map((a, i) => ({ wch: Math.max(...arrayOfArray.map(a2 => a2[i] ? a2[i].toString().length : 0)) }));
}此函数假定您的第一行拥有大多数列。然后,通过计算内容字符长度,尝试在每列中找到最宽的单元格。
发布于 2019-01-24 11:19:19
与单元格宽度类似,可以按以下方式设置单元格高度
var wsrows = [
{hpt: 12}, // row 1 sets to the height of 12 in points
{hpx: 16}, // row 2 sets to the height of 16 in pixels
];
ws['!rows'] = wsrows; // ws - worksheet提示:,如果您的工作表数据是自动生成的,并且您不知道要填充多少行和列,那么您可以使用以下方法查找工作表中的行和列数,以便进行单元格宽度/高度格式化。
var range = XLSX.utils.decode_range(ws['!ref']);
var noRows = range.e.r; // No.of rows
var noCols = range.e.c; // No. of colshttps://stackoverflow.com/questions/24395693
复制相似问题