从服务器压缩excel文件以供下载

时间:2016-01-10 22:18:55

标签: javascript excel zip jszip

我正在尝试使用jszip.js从服务器捆绑多个excel文件,这些文件应该在点击时作为zip文件一起下载。

当我尝试更换演示脚本时,我可以创建一个zip文件,但它是空的。

当我在zip.file中放入两个文件时,第一个文件出现在zip中,但它已损坏。 像:

var zip = new JSZip();
zip.file('http://website/file1.xlsx', 'http://website/file2.xlsx');
var content = zip.generate({type:"blob"});
saveAs(content, "example.zip");

所以我应该把文件的名称放在第一个位置而不是文件的位置,但是我必须以另一种方式访问​​它...

我想我不会检查API是如何工作的。

获得一个至少有两个托管在服务器上的文件的例子真是太棒了......

1 个答案:

答案 0 :(得分:1)

JSZip无法下载内容,但如果您需要支持IE< = 9,则可以使用XHR(xhr.responseType = "arraybuffer"}或JSZipUtils。您可以在{{3}找到更多详细信息文档。

您尝试做的事情看起来像this page:下载多个文件并压缩它们。

没有复制/粘贴整个代码,例如:

  • 触发ajax调用(使用JSZipUtils,但如果只支持最近的浏览器,则只能轻松使用responseType = "arraybuffer"
  • 将它们包装成promises(jQuery承诺在这里,但你可以使用自己的)
  • 将结果添加到zip对象
  • 在触发下载之前等待所有承诺完成