用js-xlsx解析c#生成的openxmlxlsx

本文关键字:openxmlxlsx js-xlsx 解析 | 更新日期: 2023-09-27 18:13:57

我在我的解决方案中生成。xlsx文档并将它们发送给用户,当使用js-xlsx解析时,它们有零单元格,这可以通过使用Excel打开生成的。xlsx并保存它们来修复。

我希望能够直接用js-xlsx解析我生成的。xlsx文档。

保存到.xlsx:

        var ms = new MemoryStream();
        workbook.SaveAs(ms);
        ms.Seek(0, SeekOrigin.Begin);
        return ms;var ms = new MemoryStream();

使用js-xlsx打开.xlsx的代码:

function readBook(file) {
    var reader = new FileReader();
    reader.onload = function (e) {
        var data = e.target.result;
        var workbook = XLSX.read(data, { type: 'binary' });
        console.log(workbook);
    };
    reader.readAsBinaryString(file);
 }

用js-xlsx解析c#生成的openxmlxlsx

我发现c# OpenXML在所有字符串xml标签前面添加了'x:',这可以通过替换'x:'标签在js-xlsx中修复。

简单地说:

data = data.replace(new RegExp('x:', 'g'), '');

into function parse_ws_xml(data, opts, rels)函数parse_sst_xml(data, opts)

Todo:做一个修复,允许你在你的。xlsx文件中有包含'x:'的字符串