在JavaScript中是否可以将字节数组/流转换为Word,Excel, PDF等文件?

Is it possible to convert byte array/stream to files such as Word,Excel, PDF in JavaScript

本文关键字:Word 转换 Excel PDF 文件 是否 JavaScript 数组 字节数 字节      更新时间:2023-09-26

我有一个关于使用JavaScript的文件操作的查询-

场景-我的JS函数调用wcf服务,该服务以字节数组或流和mime类型的形式返回文件内容。这个字节数组/流需要转换成一个文件,并将其下载到用户的机器上。
参考代码 -

var arr = "This is test content";
var byteArray = new Uint8Array(arr);
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([byteArray], {
    type: 'text/plain'
}));
a.download = "Test";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);

代码只适用于文本文件。mime类型不是文本的文件已损坏。我知道文件操作在客户端受到严格限制,但只是为了确认-无论如何都可以将字节数组/流转换为Word,Excel, PDF等文件吗?

我用这个实现了一个类似的目标。从byteArray所在的位置拾取,并尝试如下操作:

    var byteArray = new Uint8Array(arrayBuffer);
    var a = window.document.createElement('a');   
    a.href = window.URL.createObjectURL(new Blob([byteArray], { type:'application/octet-stream' }));
    // supply your own fileName here...
    a.download = "YourFileName.XLSX";
    document.body.appendChild(a)
    a.click();
    document.body.removeChild(a)

设置contentType为"application/octet-stream"可以容纳任何二进制文件类型