JSON, excel-Datei in javascript

Ich bin mit dem folgenden code zum erstellen von excel-Datei Daten aus dem JSON-Objekt und dann laden Sie Sie auf der Klick auf eine Schaltfläche.

getExcelFile: function() {
            testJson = validation_data;
            testTypes = {
                "name": "String",
                "city": "String",
                "country": "String",
                "birthdate": "String",
                "amount": "Number"
            };

            emitXmlHeader = function() {
                return '<?xml version="1.0"?>\n' +
                        '<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">\n' +
                        '<ss:Worksheet ss:Name="Sheet1">\n' +
                        '<ss:Table>\n\n';
            };

            emitXmlFooter = function() {
                return '\n</ss:Table>\n' +
                        '</ss:Worksheet>\n' +
                        '</ss:Workbook>\n';
            };

            jsonToSsXml = function(jsonObject) {
                var row;
                var col;
                var xml;
                var data = typeof jsonObject != "object"
                        ? JSON.parse(jsonObject)
                        : jsonObject;

                xml = emitXmlHeader();

                for (row = 0; row < data.length; row++) {
                    xml += '<ss:Row>\n';

                    for (col in data[row]) {
                        xml += '  <ss:Cell>\n';
                        xml += '    <ss:Data ss:Type="' + testTypes[col] + '">';
                        xml += data[row][col] + '</ss:Data>\n';
                        xml += '  </ss:Cell>\n';
                    }

                    xml += '</ss:Row>\n';
                }

                xml += emitXmlFooter();
                return xml;
            };
            download = function(content, filename, contentType) {
                if (!contentType)
                    contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
                var a = document.getElementById('test');
                var blob = new Blob([content], {
                    'type': contentType
                });
                a.href = window.URL.createObjectURL(blob);
                a.download = filename;
            };

            download(jsonToSsXml(testJson), 'validation_data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        }

Aber die erstellte Datei nicht öffnen, die in Microsoft Office 2007 und gibt die Fehlermeldung "Datei möglicherweise beschädigt". Bitte helfen Sie.

  • Bitte wenden Sie sich mit diesem vorherigen stack-überlauf Question. Dies kann nützlich sein. Viel Glück.
  • Danke @Nayana_Das für Ihre Hilfe. Aber die Frage, die Sie erwähnt hat der code wandelt JSON in das CSV-format. Ich möchte, dass meine JSON-Objekt umgewandelt werden, um XLSX-format.
  • Hoffe, dass dieses Modul hilft Ihnen, überprüfen Sie bitte icg-json-to-xlsx-Modul, von hier aus, u erhalten die git-repository-link, wo u können download-Modul und arbeiten.
  • es hilft zum Parsen der json-Daten aus einer IP-Adresse zum Beispiel: 127.0.0.1:8000/Kurse/?format=json und erzeugen eine xlsx sheet als output
Schreibe einen Kommentar