【问题标题】:sheetjs xlsx, How to write merged cells?sheetjs xlsx,如何编写合并单元格?
【发布时间】:2018-11-28 09:42:13
【问题描述】:

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

数据

[
  {
    "id": "nick",
    "items": [
      {
        "name": "ball"
      },
      {
        "name": "phone"
      }
    ]
  },
  {
    "id": "jack",
    "items": [
      {
        "name": "pen"
      },
      {
        "name": "doll"
      }
    ]
  }
]

我的代码:

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");

我想要得到的结果:

我如何得到这个结果?

...谢谢

【问题讨论】:

  • 我还期望 lib 将使用给定的 json 对象创建所需的工作表。但似乎嵌套数组没有得到很好的处理..找到解决方案后会回来。目前我从谷歌获得的信息。似乎客户需要明确指定合并行/列。
  • 嗨 chacker 你找到解决办法了吗?

标签: javascript xlsx sheetjs


【解决方案1】:
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;

使用此代码合并 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}的key是什么,是随机命名的key吗?
  • @JillAndMe s = 开始,e = 结束,r = 行 & c = 列。我认为它不是随机命名的。参考。 docs.sheetjs.com
  • 它只适用于从下到上的顺序。例如,第一行 10 然后是第 5 行 .... 第 0 行。
猜你喜欢
  • 2022-10-24
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 1970-01-01
相关资源
最近更新 更多