写入节点XLSX中的空白单元格

时间:2019-02-28 11:38:53

标签: javascript node.js xlsx

我正在使用以下代码在节点中使用XLSX更新excel工作表中的单元格。我正在过滤数组,并根据某些条件在IF循环中使用以下内容。一切正常,无论行索引在哪里,我都可以写入所需的单元格,但是,条件之一是,如果该列中的单元格为“ 0”,则将其返回,但是返回空白存在问题我也设法修复的单元格,对于空白单元格,我可以获得一个值为“ 0”的数组。

问题是在写入工作表时出现的,它可以写入所有值为'0'的行,但无法像其他单元格udpate一样将空单元格更新为'1'值。它甚至可以遍历该空白单元格并更改其下方的值,但是当该单元格为空白时,它将无法写入。

数组看起来像

label label label label
0     0     0     1
0     0     0       // <- THIS: doesn't write to 1 if the cell is empty
0     0     0     1
0     0     0     0 // <- if it has a 0 value it will write to 1
0     0     0     1

const workbook = XLSX.readFile("" + appDir + "\\tmp\\feedbacklist.xlsx", {
    type: "binary",
    cellDates: true,
    dateNF: "yyyy-mm-dd;@",
    sheetStubs: true
});
const SheetNameList = workbook.SheetNames;
var rows = XLSX.utils.sheet_to_json(workbook.Sheets[SheetNameList[0]], {
    raw: false,
    defval: '0'
});

var index = rows.indexOf(filteredRows[x]);
console.log("Index: " + index);

const updateFeedbackCell = raw[XLSX.utils.encode_cell({
    r: index + 1,
    c: 13 // in the example array above the are only 4 columns but i have 13 in dev
})];

updateFeedbackCell.v = '1';

关于空白单元格有很多文章,我做了一些建议,可以使用defval:'0'和sheetStubs:true读取它们,但是我在数组中返回了'0'值,只是不能写回空白单元格。

我已删除了不必要的代码。

有什么想法吗?

0 个答案:

没有答案