如何在 Node.js 中将 Open XML 转换为 Excel

问题描述

我正在使用一个名为 amazon-mws 的 npm 包。我可以从亚马逊 MWS API 请求和接收报告。我还可以指定是要使用 xml 响应还是 json 响应,对于以下示例,我使用了 xml 响应。当我请求一个名为“类别列表报告”的特定报告时,我会得到如下所示的响应:
PK;��R_rels/.rels��Mj1F�b��h�B)%N6��])�T[���X�V���5]��I�������i4_�r/�²��pp���Zx?�,��d��i��N�a�Y��HZ�䮏�F�:����]��J"��i$M��Z��jWu���/�L����/�N��͖����}N�� �O2����q�oIÇ�Pa0xYfu���ʼn�<)��ċ�JLI���Nj{-��;q���~����Q9x�ם(Ƴξ��PKd��(�MPK;��RdocProps/core.xml}R�
我知道当您通过亚马逊的卖家中心门户时,该报告会以 Excel 文件的形式下载。同样重要的是要注意,卖家通常无法获得此报告,他们必须请求访问它,因此我认为他们没有为 API 解析此报告。我似乎得到了原始 excel 数据,这些数据来自我的研究是 Open XML 格式,尽管我可能是错的。我想知道他们是否有任何方式来访问或操纵这些数据。也许将其保存或转换为 excel 文件。 此外,如果我按照预期从卖家中心门户下载 excel 文件,并将其从 .xlsx 更改为 .txt 并打开它,我会得到:
PK ;‚šR _rels/.rels’Mj1F¯b´Ïh’B)%N6¡])éT[óÃÌXÆVÛäö5]„¤I––ä§ç¯·Çi4_œr/Á²ªÁppâûÐZx?¼,žÀd¥ài”ÀNœa»Y¿ñHZ®ä®ÙFÈ:ÕøŒ˜]ÇåJ"‡Òi$M¤å˜ZŒäjWuýˆé/æL³÷ÒÞ/ÁN±ì½Í–¦éïÄ}Nô œO2¥–ÕÂqÄoIÇÈPa0xYfu¿Ìÿʼn•<)¡“Ä‹˜JLIûëÙÇ‹{-åü;qÕèá~£ÛñðQ9xö×(ƳξÁæPKdÞÇ(é M PK ;‚šR docProps/core.xml}RË
这看起来非常类似于我从 API 得到的响应,但是似乎 � 字符在某处的翻译中丢失了。我尝试过做这些事情。

fs.writeFile("excel.txt",apiResponse,function (err) {
      if (err) {
        return console.log(err);
      }
      console.log("The file was saved!");
    }); 

然后,当我手动将扩展名从 .txt 更改为 .xlsx 并打开文件时,它显示
'We have found a problem with some content in the 'excel.xlsx'. Do you want us to try and recover as much as we can?'
当我说是时,它以 'Excel cannot open the file 'excel.xlsx' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file'
我也尝试将其保存为 .xlsx 和 .xlsb 文件而不是 .txt,但这会产生相同的结果。

任何帮助将不胜感激。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)