2

我需要阅读一个 excel 表,并在检查来自后端的数据后需要为行着色。我能够使用新数据读取和创建新工作表,但对于单元格/行,填充在这里不起作用。

这是我的代码,我正在使用 xlsx npm

  let cell = workingSheet['C'+i];
  console.log(cell)
  workingSheet['A'+i].v = "PROCESSED"+i;
  workingSheet['A'+i].s = { fill: { fgColor: { rgb: "#111111" } } };
  console.log(
    workingSheet['A'+i]
  )
  xlsx.writeFile(spreadsheet, `./sheets/output/mysheet.xls`);
4

2 回答 2

2

此示例显示如何为单元格背景着色。问题是,没有图案类型:"solid",颜色代码不需要开头的#。这不适用于xlsx包,但xlsx-color

"use strict";
var xlsx = require("xlsx-color");
var spreadsheet = xlsx.utils.book_new();
var xf = "./sheets/output/mysheet.xls";

var sheets = {
  "Munkafüzet1": [
    ["M1A1", "M1B1", "M1C1", "M1D1"],
    ["M1A2", "M1B2", "M1C2", "M1D2"],
    ["M1A2", "M1B2", "M1C2", "M1D2"],
    ["M1A2", "M1B2", "M1C2", "M1D2"],
    ["M1A2", "M1B2", "M1C2", "M1D2"],
  ]
};

for (var sheet of Object.keys(sheets)) {
  xlsx.utils.book_append_sheet(
    spreadsheet,
    xlsx.utils.aoa_to_sheet(sheets[sheet]),
    sheet
  );
}

var i;
for (i = 1; i <= sheets["Munkafüzet1"].length; i++) {
spreadsheet.Sheets["Munkafüzet1"]["A"+i].s = {
  fill: {
    patternType: "solid",
    fgColor: { rgb: "111111" }
  }
  };
}

xlsx.writeFile(spreadsheet, xf);
于 2021-02-10T12:38:46.547 回答
0

根据这个线程

我们在Pro 纲要中提供了这个。由于公司已经为这些功能付费,如果我们转而将其作为开源提供,对他们来说是不公平的。我们在要点上有更长的评论。

于 2020-11-08T18:53:08.737 回答