Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 wrapText_Javascript_Node.js_Excel_Exceljs - Fatal编程技术网

Javascript 表列中的excelJS wrapText

Javascript 表列中的excelJS wrapText,javascript,node.js,excel,exceljs,Javascript,Node.js,Excel,Exceljs,有没有办法让wrapText为表中的列工作?我正在尝试以下操作,但它没有在excel中注册 const columnsStyle = { font: { name: 'Arial Black', size: 12 } }; const columns = [ { name: 'PO#', style: columnsStyle, alignment: { wrapText:true } } ]; ws.addTable({ name: '

有没有办法让wrapText为表中的列工作?我正在尝试以下操作,但它没有在excel中注册

const columnsStyle = { font: { name: 'Arial Black', size: 12 } };
const columns = [
            { name: 'PO#', style: columnsStyle, alignment: { wrapText:true } }
];
 ws.addTable({
                name: 'name',
                ref: `A${lastRowNum}`,
                columns: columns,
                rows: rows,
            });
我还尝试将“对齐”放在“样式”对象中,但在excel中打开时会导致错误。(表看起来不同,没有换行符文本,excel表示尝试创建时出错)

const columnsStyle={font:{name:'Arial Black',大小:12},对齐方式:{wrapText:true};
常量列=[
{名称:'PO#',样式:columnsStyle,}
];

我还想包装表中这些列中的所有单元格。有人知道如何包装吗?我把文档翻了好几遍,找不到任何具体的东西

注:我知道我能做到
ws.getCell(ref.alignment={wrapText:true}
,因此我尝试查看table对象,看看是否可以获取其中所有单元格的引用,循环它们,并设置对齐方式。但是我无法获取表中的单元格。

我通过检测表中包含的行,然后循环遍历每一行,然后遍历每一行的单元格,实现了一种变通方法。最后在每个单元格上设置wrapText

//Record where the table starts
const firstTableRowNum = SOME_NUM;

//Create the table
ws.addTable({
    name: 'someTable',
    ref: `A${firstTableRowNum}`,
    columns: columns,
    rows: rows,
});

//Record table's last row
let lastRowNum = ws.lastRow.number;
const lastTableRowNum = lastRowNum;

//Loop through all table's row
for (let i=firstTableRowNum; i<= lastTableRowNum; i++) {
    const row = ws.getRow(i);

    //Now loop through every row's cell and finally set alignment
    row.eachCell({includeEmpty: true}, (cell => {
        cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
    }));
}
//记录表的起始位置
const firstTableRowNum=一些数值;
//创建表
ws.addTable({
名称:“someTable”,
ref:`A${firstTableRowNum}`,
列:列,
行:行,
});
//记录表的最后一行
让lastRowNum=ws.lastRow.number;
const lastTableRowNum=lastRowNum;
//循环遍历所有表的行

对于(让i=firstTableRowNum;i我实现了一种变通方法,检测表包含在哪些行中,然后循环遍历每一行,然后遍历每一行的单元格,最后在每个单元格上设置wrapText

//Record where the table starts
const firstTableRowNum = SOME_NUM;

//Create the table
ws.addTable({
    name: 'someTable',
    ref: `A${firstTableRowNum}`,
    columns: columns,
    rows: rows,
});

//Record table's last row
let lastRowNum = ws.lastRow.number;
const lastTableRowNum = lastRowNum;

//Loop through all table's row
for (let i=firstTableRowNum; i<= lastTableRowNum; i++) {
    const row = ws.getRow(i);

    //Now loop through every row's cell and finally set alignment
    row.eachCell({includeEmpty: true}, (cell => {
        cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
    }));
}
//记录表的起始位置
const firstTableRowNum=一些数值;
//创建表
ws.addTable({
名称:“someTable”,
ref:`A${firstTableRowNum}`,
列:列,
行:行,
});
//记录表的最后一行
让lastRowNum=ws.lastRow.number;
const lastTableRowNum=lastRowNum;
//循环遍历所有表的行

对于(让i=firstTableRowNum;i可以按行或按列设置对齐方式)

在所有行中循环并设置对齐和文本换行:

var sheet = workbook.addWorksheet(sheetName, { pageSetup: { paperSize: 9, orientation: 'landscape' } });

// Add data to sheet here, e.g. sheet.addRow

let rowIndex = 1;
for (rowIndex; rowIndex <= sheet.rowCount; rowIndex++) {
    sheet.getRow(rowIndex).alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
}
sheet.getColumn(5).alignment = { vertical: 'middle', wrapText: true };
sheet.getColumn(7).alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
此外,如果要包装文本,则可能希望单元格为文本。可以使用numFmt:“@”在列标题样式中设置此选项。如下所示:

const columnHeaders = [
    { header: 'Column 1 Title', key: 'COL_ONE', width: 10, style: { numFmt: '@' } },
    { header: 'Column 2 Title', key: 'COL_TWO', width: 32, style: { numFmt: '@' } },
]

sheet.columns = columnHeaders;

可以按行或按列设置对齐方式

在所有行中循环并设置对齐和文本换行:

var sheet = workbook.addWorksheet(sheetName, { pageSetup: { paperSize: 9, orientation: 'landscape' } });

// Add data to sheet here, e.g. sheet.addRow

let rowIndex = 1;
for (rowIndex; rowIndex <= sheet.rowCount; rowIndex++) {
    sheet.getRow(rowIndex).alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
}
sheet.getColumn(5).alignment = { vertical: 'middle', wrapText: true };
sheet.getColumn(7).alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
此外,如果要包装文本,则可能希望单元格为文本。可以使用numFmt:“@”在列标题样式中设置此选项。如下所示:

const columnHeaders = [
    { header: 'Column 1 Title', key: 'COL_ONE', width: 10, style: { numFmt: '@' } },
    { header: 'Column 2 Title', key: 'COL_TWO', width: 32, style: { numFmt: '@' } },
]

sheet.columns = columnHeaders;