当我试图在.xslx文件上使用Axios发出get请求时,我会得到一些特殊的字符(可能是二进制的?)我不知道)在我的控制台上。
看起来是这样的:
�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)。
app.get("/pep", async (req, res) => {
try {
const pepList = await axios({
url:
"link.xlsx?la=da"
});
console.log(pepList.data);你知道如何从这得到一些我可以使用的数据吗?我需要能够将xlsx数据转换成XML数据吗?
谢谢
发布于 2019-08-22 09:35:57
我建议使用.xlsx模块解析下载的xlsx文件,这允许您将工作表转换为json。然后可以使用松毒将其转换为xml。
使用一个在线.xlsx文件示例:
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数据,如下所示:
<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>https://stackoverflow.com/questions/57604945
复制相似问题