在js中读取xlsm文件

Posted

技术标签:

【中文标题】在js中读取xlsm文件【英文标题】:read xlsm file in js 【发布时间】:2021-07-22 12:00:02 【问题描述】:

我正在使用以下代码在 javascript 中读取 xlsx 文件:

this.parseExcel = function (file, id) 
        var reader = new FileReader();

        reader.onload = function (e) 
            var data = e.target.result;
            var workbook = XLSX.read(data, 
                type: 'binary'
            );

            var template_row_object = XLSX.utils.sheet_to_csv(workbook.Sheets['Template']);;
        reader.onerror = function (ex) 
            console.log(ex);
        ;
        reader.readAsBinaryString(file);
    ;
;

代码对于 xlsx 文件工作正常,但我想使用相同的代码来读取 xlsm 格式。

【问题讨论】:

【参考方案1】:

不鼓励使用readAsBinaryString(它曾经被删除,但为了向后兼容而恢复)。事实上,FileReader 的漏洞现在是遗留的,现在有了新的基于 Promise 的 blob 读取方法。

this.parseExcel = async function (file, id) 
  const uint8 = new Uint8Array(await file.arrayBuffer())

  const workbook = XLSX.read(uint8,  type: 'array' )

  const template_row_object = XLSX.utils.sheet_to_csv(workbook.Sheets.Template)

它可能无法回答您的问题,但我猜 xlsm 是 XLSX 不支持的不同格式。

【讨论】:

以上是关于在js中读取xlsm文件的主要内容,如果未能解决你的问题,请参考以下文章

尝试读取 .xlsm 文件时出现 java.lang.NoSuchMethodError

将 XLSM 转换为 XLSX

JS-XLS/X读取和解析Excel表格文件(xls/xlsx)的JavaScript插件

Excel用Python读取清洗后怎么写入数据

Python:openpyxl这一篇就够了

在 node.js 中读取文件和读取目录