use*_*616 3 javascript excel node.js exceljs
有没有办法让 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,
});
Run Code Online (Sandbox Code Playgroud)
我还尝试将“对齐”放在“样式”对象中,但在 excel 中打开时会导致错误。(表格看起来不同,没有换行文字,excel 说尝试创建它时出错)
const columnsStyle = { font: { name: 'Arial Black', size: 12 }, alignment: { wrapText:true } };
const columns = [
{ name: 'PO#', style: columnsStyle, }
];
我还想将表格这些列中的所有单元格也包装起来。有没有人知道如何做到这一点?我看了好几次文档,找不到任何具体的东西。
注意:我知道我可以做到
ws.getCell(ref).alignment = {wrapText:true},所以我尝试查看 table 对象,看看我是否可以获得其中所有单元格的引用,遍历它们并设置对齐方式。但是我无法在表格中获取单元格。
您可以按行或按列设置对齐方式。
循环遍历所有行并设置对齐和文本换行:
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 };
}
Run Code Online (Sandbox Code Playgroud)
设置第 5 列和第 7 列的对齐和文本换行:
sheet.getColumn(5).alignment = { vertical: 'middle', wrapText: true };
sheet.getColumn(7).alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
Run Code Online (Sandbox Code Playgroud)
此外,如果您要换行文本,您可能希望单元格为文本。您可以使用 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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6966 次 |
| 最近记录: |