Javascript 表列中的excelJS wrapText
有没有办法让wrapText为表中的列工作?我正在尝试以下操作,但它没有在excel中注册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: '
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;