如何使用exceljs在Node.js中更改msexcell单元格格式

3
const Excel = require('exceljs');
let workbook = new Excel.Workbook();
let workSheet = workbook.getWorksheet(1);
workSheet.getCell('W2').font = {color: {argb: "004e47cc"}};

该代码设置整行的字体颜色,而不仅仅是W2单元格。如果我执行以下操作,则会发生相同的情况:

let row2 = workSheet.getRow(2);
row2.getCell(23).font = {color: {argb: "004e47cc"}}; //W2

那么我该如何仅为某些单元格设置单元格样式呢?

对我来说运行良好...尝试更新模块。 - mihai
3个回答

2

这对我也有效,但是您的代码不可行。 workbook.getWorksheet(1) 会失败,因为您没有在新创建的工作簿中创建任何工作表。

这段代码生成一个有效的 .xlsx 文件,在其中单元格 W2 具有所需颜色:

const Excel = require('exceljs');
const workbook = new Excel.Workbook();
const workSheet = workbook.addWorksheet('Sheet');
workSheet.getCell('W2').font = {color: {argb: "004e47cc"}};
workbook.xlsx.writeFile('foo.xlsx');

0

使用 "getWorksheet('sheetName')" 而不是 "getWorksheet(sheetNo)",这对我来说很有效。


0
  1. 关于样式:

这个应该可以正常工作:

row2.getCell(23).style = {font:{color: {argb: "004e47cc"}}}

因为默认情况下,一行中的所有单元格都引用一个 style 对象,而 font 只是一个获取器和设置器 .style.font

  1. 关于访问工作表:

使用 "getWorksheet('sheetName')" 而不是 "getWorksheet(sheetNo)",这对我很有效。

因此,在 exceljs 中,我们提供了两种获取工作表的方法:

// FIRST:
// wb.getWorksheet(ws:string|number):Worksheet
wb.getWorksheet('sheetName')
wb.getWorksheet(sheetId) 
// NOTE: sheetId is number written into worksheet,
// it's not a index in array - just a number from Excel. 
// So for some files you read sheetId may be for instance: 10, 9, 999
// I recommend to avoid using  ws.getWorksheet(NUMBER).

// SECOND:
// wb.worksheets: Array<Worksheet>
wb.worksheets[1];
wb.worksheets[2];
wb.worksheets[wb.worksheets.lenght-1];
// I am big fan of using this way :)

我刚刚更新了ExcelJs的自述文件,我添加了一些有关访问工作表的说明: https://github.com/exceljs/exceljs#access-worksheets - Paweł Siemienik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接