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

时间:2018-09-21 19:39:34

标签: node.js exceljs

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

那我如何只为某些单元格设置单元格样式?

3 个答案:

答案 0 :(得分:1)

它也对我有用,但是您的代码不能按原样工作。 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');

答案 1 :(得分:0)

使用“ getWorksheet('sheetName')”代替“ getWorksheet(sheetNo)”,这对我来说很好。

答案 2 :(得分: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 :)