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

如何使用exceljs更改Node.js中的msexcell单元格格式,node.js,exceljs,Node.js,Exceljs,这段代码为整行设置字体颜色,而不仅仅是W2单元格。如果我这样做,也会发生同样的情况: const Excel = require('exceljs'); let workbook = new Excel.Workbook(); let workSheet = workbook.getWorksheet(1); workSheet.getCell('W2').font = {color: {argb: "004e47cc"}}; 那么,我如何为特定的单元格设置单元格样式呢?它也适用于我,但您的代

这段代码为整行设置字体颜色,而不仅仅是W2单元格。如果我这样做,也会发生同样的情况:

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

那么,我如何为特定的单元格设置单元格样式呢?

它也适用于我,但您的代码无法正常工作<代码>工作簿。getWorksheet(1)失败,因为您尚未在创建的新工作簿中创建任何工作表

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

let row2 = workSheet.getRow(2);
row2.getCell(23).font = {color: {argb: "004e47cc"}}; //W2
使用“getWorksheet('sheetName')”而不是“getWorksheet(sheetNo)”,这对我来说很好

  • 关于样式:
  • 这个应该可以正常工作:

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

    因为,默认情况下,一行中的所有单元格都引用到一个
    样式
    对象中,
    字体
    只是一个getter和setter

  • 关于访问工作表:
  • 使用“getWorksheet('sheetName')”而不是“getWorksheet(sheetNo)”,这对我来说很好

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

    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');
    
    //首先:
    //wb.getWorksheet(ws:string | number):工作表
    wb.getworker('sheetName')
    wb.getWorksheet(sheetId)
    //注:sheetId是写入工作表的编号,
    //它不是数组中的索引,只是Excel中的一个数字。
    //因此,对于某些文件,您读取的sheetId可能是例如:10、9、999
    //我建议避免使用ws.getWorksheet(NUMBER)。
    //第二:
    //工作表:数组
    wb.工作表[1];
    wb.工作表[2];
    wb.工作表[wb.工作表长度-1];
    //我非常喜欢用这种方式:)
    
    对我来说很好…尝试更新模块我刚刚更新了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 :)