sheetjs xlsx,如何编写合并的单元格?

cha*_*ker 15 javascript xlsx sheetjs

我需要使用 sheetjs 创建一个带有合并单元格的 xlsx。

数据

[
  {
    "id": "nick",
    "items": [
      {
        "name": "ball"
      },
      {
        "name": "phone"
      }
    ]
  },
  {
    "id": "jack",
    "items": [
      {
        "name": "pen"
      },
      {
        "name": "doll"
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我的代码:

var ws = XLSX.utils.json_to_sheet(data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "");
var wbout = XLSX.write(wb, {bookType:'xlsx', type:'array'});
saveAs(new Blob([wbout],{type:"application/octet-stream"}), filename + ".xlsx");
Run Code Online (Sandbox Code Playgroud)

我想得到的结果:

结果

我如何得到这个结果?

... 谢谢

Amj*_*n A 22

const merge = [
  { s: { r: 1, c: 0 }, e: { r: 2, c: 0 } },{ s: { r: 3, c: 0 }, e: { r: 4, c: 0 } },
];
ws["!merges"] = merge;
Run Code Online (Sandbox Code Playgroud)

使用此代码合并 A2:​​A3 ( { s: { r: 1, c: 0 }, e: { r: 2, c: 0 } }) 和 A4:A5 ( { s: { r: 3, c: 0 }, e: { r: 4, c: 0 } })

这里 s = 开始,r = 行,c=col,e= 结束

  • 我想知道 s 和 e 是做什么用的?这是合并数组中 { r: n, c: n} 的键,它是随机命名的键吗? (3认同)
  • @JillAndMe s = 开始,e = 结束,r = 行 & c = 列。我认为它不是随意命名的。参考号 https://docs.sheetjs.com/ (2认同)