SheetJS js xlsx-在单元格区域中添加超链接公式



我无法解密文档。。。

目标是在每个单元格中基于另一个单元格创建一个链接公式。

let wb = XLSX.utils.book_new();
wb.Props = {
Title: `export`,
Subject: "export",
};
let ws_data = [
[
"sku",
"product",
"picture"
]
];
products.map(item => {
ws_data.push([
item.sku,
item.product,
`=HYPERLINK("/pics/"&${item.sku}&".jpg";"link")`,
])
})
wb.SheetNames.push("data");
let ws = XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets["data"] = ws;
let wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
saveByteArray([convertBinaryToOctetStream(wbout)], `export.xlsx`);

显然,这只是将=HYPERLINK("/pics/all/"&sku&".jpg";"link")文本放入单元格中。它怎么可能是实际的公式?

您可以尝试单独映射数组,然后在工作表中使用它吗?我猜你想要第三栏的链接。

products.map(item => {
ws_data.push([
item.sku,
item.product,
'link',
])
})
products.foreach(item => {
ws_links.push("/pics/" + item.sku + ".jpg" )
})

wb.SheetNames.push("data");
let ws = XLSX.utils.aoa_to_sheet(ws_data);
for (let i = 0; i < json.length; i++) {
ws[XLSX.utils.encode_cell({
c: 3,
r: i
})].l = { Target: ws_links[i] };
}
wb.Sheets["data"] = ws;
let wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });

最新更新