gpt4 book ai didi

javascript - 将多个 blob Excel 文件压缩成一个 zip 文件 javascript

转载 作者:行者123 更新时间:2023-11-30 19:31:41 27 4
gpt4 key购买 nike

我实际上正在使用这个库:https://github.com/SheetJS/js-xlsx .我用它来创建和下载从我的网站中提取表格的 XLSX 文件。这确实工作得很好,但我现在正在尝试做一些更复杂的事情。

我正在尝试同时下载所有表格,这意味着要下载多个 XLSX 文件。它确实适用于我的实际代码:

function saveAll(dataAll){
for (let i=0;i<dataAll.length;++i) {
let ws_name = "SheetJS";
let data = dataAll[i];

let wb = new Workbook();
console.log(data);
let ws = sheet_from_array_of_arrays(data.content, null, data.mois, data.annee);

/* add worksheet to workbook */
wb.SheetNames.push(ws_name);
wb.Sheets[ws_name] = ws;

let wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: true, type: 'binary'});

saveAs(new Blob([s2ab(wbout)],{type: "application/octet-stream"}), data.prenom_nom + " PVA " + data.mois + " " + data.annee + ".xlsx");
}
}

现在我想将所有这些 xlsx 文件下载到一个独特的 ZIP 或 tar.gz 文件中,但我有点卡住了。我尝试使用 zip.js 库,但没有成功。

我的 dataAll 参数是对象数组,每个对象都包含 .content 矩阵,以及文件名上使用的其他一些参数。

我如何设法将所有这些 xlsx 文件下载到一个存档中,而不是一个一个地下载?

最佳答案

你可以试试这个

var zip = new JSZip();
for(var i=1;i<3;i++)
{
var workbook = XLSX.utils.book_new();
var ws1 = XLSX.utils.table_to_sheet(document.getElementById('tbl'+i));
XLSX.utils.book_append_sheet(workbook, ws1, "Sheet1");
let wbout = XLSX.write(workbook, {bookType: 'xlsx', bookSST: true, type: 'binary'});

zip.file("shubham"+i+".xlsx", wbout, {binary: true});
}

zip.generateAsync({type:"blob"})
.then(function(content) {
// see FileSaver.js
saveAs(content, "example.zip");
});
<!Doctype html>
<html lang="en">

<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width" , initial-scale=1, shrink>
<meta name="theme-color" content="#000000">

<title>ES6</title>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.2.0/jszip.min.js"></script>
</head>


<body>
<table id="tbl1">
<tr><td>Name</td><td>Age</td></tr>
<tr><td>Shubham</td><td>22</td></tr>
</table>
<table id="tbl2">
<tr><td>Name</td><td>Age</td></tr>
<tr><td>Shubham</td><td>22</td></tr>
</table>
</body>
<script>

</script>

</html>

关于javascript - 将多个 blob Excel 文件压缩成一个 zip 文件 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com