npm 使用XLSX Angular从模板编写Excel

d8tt03nd  于 2023-10-19  发布在  Angular
关注(0)|答案(1)|浏览(98)

我在Angular应用程序中使用XLSX库从另一个文件写入Excel文件。我的初始文件是用base64编码的,所以我需要解码它并修改一些单元格。接下来,我必须在base64中保存这个新文件。

const byteArray = new Uint8Array(
                  atob(files[0].base64Content)
                        .split('')
                        .map((char) => char.charCodeAt(0))
                );

                const file = new Blob([byteArray], { type: 'text/csv' });
                const imageFile = new File([file], files[0].fileName, {
                    type: 'text/csv',
                });

                let fileReader = new FileReader();
                fileReader.readAsArrayBuffer(imageFile);
                fileReader.onload = (e) => {
                    var arrayBuffer: any = fileReader.result;
                    var data = new Uint8Array(arrayBuffer);
                    var arr = new Array();
                    for (var i = 0; i != data.length; ++i)
                        arr[i] = String.fromCharCode(data[i]);

                    var bstr = arr.join('');
                    var workbook = XLSX.read(bstr, { type: 'binary' });
                    var worksheet = workbook.Sheets['Worksheet1'];

                    worksheet['BP3'] = 'x';
              };

我读了工作表,改变了一个单元格的值。我现在需要保存这个文件在base64。有人能帮帮我吗?

1l5u6lss

1l5u6lss1#

我假设“XLSX库”,你的意思是SheetsJS,在这种情况下,我相信你正在寻找的是writeFile方法(在这里找到)。您可以使用type选项作为选项参数的一部分。

XLSX.writeFile(workbook, files[0], { type: 'base64' })

相关问题