如何为同一行中的不同单元格设置不同的字体颜色?

How to set different font color for different cell in the same row?

我正在使用 `exceljs 包来操作 xslx 文件。

这是我的代码。

async function doExport(){
    monthlyCalendar={
        "calendarDateList": [
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 1,
                "dayOfWeek": 1,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 2,
                "dayOfWeek": 2,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 3,
                "dayOfWeek": 3,
            },  
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 4,
                "dayOfWeek": 4,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 5,
                "dayOfWeek": 5,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 6,
                "dayOfWeek": 6,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 7,
                "dayOfWeek": 0,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 8,
                "dayOfWeek": 1,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 9,
                "dayOfWeek": 2,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 10,
                "dayOfWeek": 3,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 11,
                "dayOfWeek": 4,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 12,
                "dayOfWeek": 5,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 13,
                "dayOfWeek": 6,          
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 14,
                "dayOfWeek": 0,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 15,
                "dayOfWeek": 1,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 16,
                "dayOfWeek": 2,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 17,
                "dayOfWeek": 3,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 18,
                "dayOfWeek": 4,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 19,
                "dayOfWeek": 5,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 20,
                "dayOfWeek": 6,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 21,
                "dayOfWeek": 0,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 22,
                "dayOfWeek": 1,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 23,
                "dayOfWeek": 2,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 24,
                "dayOfWeek": 3,
        
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 25,
                "dayOfWeek": 4,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 26,
                "dayOfWeek": 5,
            },
            {
                "publicHoliday": false,
                "today": false,
                "dateOfMonth": 27,
                "dayOfWeek": 6,
            },
            {
                "publicHoliday": true,
                "today": false,
                "dateOfMonth": 28,
                "dayOfWeek": 0,
            }
        ],
        "noOfWorkingDay": 18
        }
    const ExcelJS = require('exceljs');
    const workbook = new ExcelJS.Workbook();
    await workbook.xlsx.readFile('./input.xlsx');
    const worksheet1 = workbook.getWorksheet("Sheet1");
    let weekdayNames=['Su','M','T','W','Th','F','S'];
    let weekdayRow=worksheet1.getRow(5);
    for (let i=0;i<this.monthlyCalendar.calendarDateList.length;i++){
        let calendarDate=this.monthlyCalendar.calendarDateList[i];
        weekdayRow.getCell(calendarDate.dateOfMonth+1).value=weekdayNames[calendarDate.dayOfWeek];
        if ((calendarDate.dayOfWeek==6)||(calendarDate.publicHoliday)){
            let address=weekdayRow.getCell(calendarDate.dateOfMonth+1).address;
            console.log(weekdayRow.getCell(calendarDate.dateOfMonth+1).address);
            worksheet1.getCell(address).font = {color:{argb: 'FFFF0000'}, name: "Times New Roman", size: 12};
            break;
        }
    }
    await workbook.xlsx.writeFile('./output.xlsx');   
}
doExport()
.then(()=>{
    console.log("Export Completed.")
})
.catch(error=>{
    console.log("Something Wrong:"+error.stack);
})

我有一行代表一个月。行中的每个单元格代表一个日期。如果日期是星期六或 public 假期,则该单元格的内容将为红色,否则,该单元格的内容将为黑色。 但是,结果是该行的所有单元格内容都变成了红色,请问您能帮忙解决一下吗?

input.xlsx 可以从 here 下载。

最后我用Rich Text Value解决了问题