Maison  >  Article  >  interface Web  >  Explication détaillée de la lecture asynchrone des fichiers xlsx par js-xlsx

Explication détaillée de la lecture asynchrone des fichiers xlsx par js-xlsx

php中世界最好的语言
php中世界最好的语言original
2018-03-12 11:54:133052parcourir

Cette fois, je vais vous apporter une explication détaillée du fonctionnement asynchrone de js-xlsx pour lire des fichiers xlsx. Quelles sont les précautions à prendre pour les opérations asynchrones d'utilisation de js-xlsx pour lire des fichiers xlsx. Voici un cas pratique, prenons ? un regard.

Fonction principale de requête :

function fetchAB(url, cb) {            var xhr = new XMLHttpRequest;
            xhr.open('get', url, true);
            xhr.responseType = 'arraybuffer';
            xhr.onload = cb;
            xhr.send();
        };

Combiné avec js-xlsx pour lire le fichier xlsx en ligne, exemple :

<!DOCTYPE html><html><head>
    <meta charset="UTF-8">
    <title></title>
    <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>
    <script>
        function fetchAB(url, cb) {            var xhr = new XMLHttpRequest;
            xhr.open('get', url, true);
            xhr.responseType = 'arraybuffer';
            xhr.onload = cb;
            xhr.send();
        };    </script>
    <script>
        var wb;        var url = ""
        function importf() {//导入
            url = document.getElementById("url").value;            if (url) {
                fetchAB(url, function () {                    if (this.status == 200) {
                        wb = XLSX.read(btoa(fixdata(this.response)), {//手动转化
                            type: 'base64'
                        });                        document.getElementById("demo").innerHTML = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));
                    }
                });
            }
        }        function fixdata(data) { 
            var o = "",
                l = 0,
                w = 10240;            for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
            o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));            return o;
        }    </script></head><body>
    <input type="text" id="url" />
    <input type="button" onclick="importf()" value="读取" />
    <div id="demo"></div></body></html>

Je crois que vous maîtrisez la méthode après avoir lu le C'est le cas dans cet article. Pour un contenu plus passionnant, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Méthode régulière de chaîne aléatoire de JS ([A~Z],[a~z],[0~9])

Effet de copie de clic réalisé avec JS

Gadget d'aperçu rapide du code HTML du navigateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn