1

我正在尝试在 Excel 工作表中添加多行。

添加一行效果很好:

var wb = {
    SheetNames: ["mySheet"],
    Sheets: {
        mySheet: {
            "!ref":"A1:C1",
            A1: { t:"d", v:"30-Jan-1967" },
            B1: { t:"s", v:"This is some text" },
            C1: { t:"n", v:10000 }
        }
    }
}
XLSX.writeFile(wb, "sheetjs.xlsx");

但是,如果我制作一个对象并尝试添加多行,它将无法正常工作,因为这些行会不断地相互覆盖。

var myObject = [];
for (let i = 0; i<10; i++) {
    myObject.push(
        {   
            "!ref":"A1:C1",
            A1: { t:"d", v:"30-Jan-1967" },
            B1: { t:"s", v:"This is no" + i },
            C1: { t:"n", v: (i * 1000) }
        }
    )
}

var wb = {
    SheetNames: ["mySheet"],
    Sheets: {
        mySheet: myObject
    }
}
XLSX.writeFile(wb, "sheetjs.xlsx");

有谁知道如何做到这一点?(VBA有特殊功能可以做到,但我不知道如何在JS中做)

4

1 回答 1

1

让 myObject= { "!ref":"A1:C10" }

for (let col=1; col< 3; col++) {
    for(let row=1; row< 10; row++ ) {
        myObject['A' + row] = {t: "s", v: 'hi A' + row};
        myObject['B' + row] = {t: "s", v: 'hi B' + row};
        myObject['C' + row] = {t: "s", v: 'hi C' + row};
    }
}

你可以试试这个,这会奏效!!!

于 2019-08-11T11:57:03.400 回答