在 Vue 中处理字节数组

问题描述

我是 Vue 新手,现在尝试将字节数组作为 .xls 文件处理

现在我有一个问题,文件看起来像 broken

如果我在服务器端将它保存为文件,数据看起来不错,没有任何问题

服务器端:

    Workbook wb = new hssfWorkbook();
    Sheet sheet = wb.createSheet("Payments");
    for (int i = 0; i < payments.size(); i++) {
        Payment payment = payments.get(i);
        Row row = sheet.createRow(i);

        ...(adding a lot of data)
    }

    try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
        wb.write(bos);
        wb.close();
        return bos.toByteArray();
    }

Vue 端:

axios.post(myRequestAndData)
    .then(resp => {
                var fileURL = window.URL.createObjectURL(new Blob([resp.data]));
                var fileLink = document.createElement('a');
                fileLink.href = fileURL;
                fileLink.setAttribute('download','file.xls');
                document.body.appendChild(fileLink);
                fileLink.click();

那么我如何处理我的 ByteArray 数据以正确的方式创建文件? 还是谢谢

解决方法

通过加入解决,{responseType:"blob"}的{​​{1}}选项

感谢@JoshuaAngnoe的帮助!