首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js:带有axios的xlsx -如何将数据存储为XML?

Node.js:带有axios的xlsx -如何将数据存储为XML?
EN

Stack Overflow用户
提问于 2019-08-22 08:17:32
回答 1查看 1.3K关注 0票数 4

当我试图在.xslx文件上使用Axios发出get请求时,我会得到一些特殊的字符(可能是二进制的?)我不知道)在我的控制台上。

看起来是这样的:

代码语言:javascript
复制
�V�?x�(~�O!�OXȽGG��x��ӫ��+j��&����Z�֗_��
                                       �v�z��˦�5b?i3�E�k�f{���2�⠌>�%���W

                                                                        D�DNb���)�B0�d����j�n����m-E_>�*w�@<�=�=Ld=F�-�ɉ`�Ⱦ�y:��]�qÃra:�N�,Τ�f�Xk��`�/RW�-��mI��Ȋ!ɠ����wI���fR!���C��@l�6��/���
                                               Œ�鐾���R���+C%P�54T`Q���݉�O}׬6����d�ת���k��!gU-d!��x�yyi�HN�c�� �׷"�'ы$%�0a�?w4�P���Ⱥ�eA��NJS|j�·kJl;�8����]��t�W3��qz��O�
                                                       ߔ!xl�+�Q�z���Qi��4=1\]�;��gT^���Zg�^��U��!|n1�qc��suX11�Uuj��ThO:7>0���!����.
                   �<���[i�*��l���
                                  J%.�>�ٹZ��=���.l�`|jv.��geb���ecq���>C�*�
�3N�?�                                                                    �&����r��t���2�إ�
      2C�V�M�R�R�<[zRO�0߬����f�  �����w�(�����z���{�8�P�����Ϧ�V�qn�vqK
                                                                     '1���i��f)k��D*QmQ�B�Z��ػ�&����O�����3����&�OdsEa�FP��:e_⺽��k��x��'�(�_��<���{��¬���8�������%OYu˃�<��҆���Z�_��l�y�F�:�:]�|��Qb�]d>��+ϴ�Z10O��*ݐ'�}���3g�R.��yth�˘��d��Tܼ)�!�U�ӀQ[���KsX�#)�O+��zĭZ���9l�k�M��h�Xݯ�=���$��C���)�#w]�J�r�������;5
��Gt������������P5¯߳{�Y�[����$�.��^N����ܰ~�̲�]�b��o���v�xhs�ɼN��v��h����1}��P'���Ez>ᣍiԯ�fq�����ޗ�r7���uB�n�����d�=�vTUs�{�%XB�����M�i��{�\J���+���F�JH
                                  �1�<ב0[�ټ�{��_��b�t��H�i�E�ols���%I���k���d1�>
                                                                                ��-xdn;�1S�cl������]m0
                                                                                                      ���       �޾�!�v/�e�:갮����x��3�h�A
                        �B�U$rW��-)��Z�C�K�}l5O����C�7E׼��G�]e猆�߲Hv��_t-�g�)
                                                                            ���o�?��G�J,Z�7�o�ٗ�qN 
                                                                                                  ��v��&eb��B��KT���&���^��K�<{��֦�xмW�.4��
<��<" �o��Pl�,N`Mn]�?d[rv��n&;Y>�5p��Y Y���Jr�*M�$����E�R���M���?��7wby��       � p��   � � �/��P!S���� xl/calcChain.xmlt�݊�0��}�0�kڪ��4텬O�>@HǶ���ѷw`Q�5��㜜�i��5�!N�I(�0t�����[`1)�+�J�`���X4Z��5�(aLi��<���K?�#r���D�0�8T}�5�*���IB���P�}�D���R�e����U�s�n�2W��E�\���?s~?b{��P!�����docProps/core.xml �(�|�]o� ��'�? ��
                                                                                        p>� Ǒ�)��*U��V�#�&a3`[�?�>hg��(F`�S�n�[��
�BV��YX���>~(e˥�p�]
                   >(�l�]�]�-'$�FIa�q�1}�-i��)�@rJg�@JDA:`֞�x@*yF��|��$Ѐ#F^��    ��˅��xhS�!�%[���~       �,���������3�|�����i�m%W��\z����n4��4#xtޮ�AW��SI.tݦ�.ͿѠn�h@��B�j�������WB�{m���)+2F3:���s>�/��;�R�~�c���T��9]�Ʒ���x�MȢf9�Nx�+������H����8�\O���������PK!`�z��
                                   [Content_Types].xmlPK!�U0#�L
                                                               �_rels/.relsPK!�i�W

我尝试了一些不同的responseType设置,但它给了我相同的输出。我也尝试过更改responseEncoding,但是输出仍然没有改变。

这是我的axios调用--都是简单明了的。就像我说的,我尝试过responseType设置和responseEncoding.(网址是私有的,这就是为什么它只写link.xlsx)。

代码语言:javascript
复制
app.get("/pep", async (req, res) => {
  try {
    const pepList = await axios({
      url:
        "link.xlsx?la=da"
    });
    console.log(pepList.data);

你知道如何从这得到一些我可以使用的数据吗?我需要能够将xlsx数据转换成XML数据吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 09:35:57

我建议使用.xlsx模块解析下载的xlsx文件,这允许您将工作表转换为json。然后可以使用松毒将其转换为xml。

使用一个在线.xlsx文件示例:

代码语言:javascript
复制
const axios = require("axios");
const XLSX = require("xlsx");
const jsontoxml = require("jsontoxml");

async function testAxiosXlsx(url) {
    const options = { 
        url,
        responseType: "arraybuffer"
    }
    let axiosResponse = await axios(options);
    const workbook = XLSX.read(axiosResponse.data);

    let worksheets = workbook.SheetNames.map(sheetName => {
        return { sheetName, data: XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) };
    });

    console.log("json:\n", JSON.stringify(worksheets), "\n\n");
    console.log("xml:\n", jsontoxml(worksheets, {}));
}

testAxiosXlsx("https://file-examples.com/wp-content/uploads/2017/02/file_example_XLSX_10.xlsx");

这将将.xlsx文件记录为xml数据,如下所示:

代码语言:javascript
复制
<sheetName>Sheet1</sheetName>
<data>
    <0>1</0>
    <First Name>Dulce</First Name>
    <Last Name>Abril</Last Name>
    <Gender>Female</Gender>
    <Country>United States</Country>
    <Age>32</Age>
    <Date>15/10/2017</Date>
    <Id>1562</Id>
</data>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57604945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档