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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vor kurzem habe ich eine Lösung für diese Frage mit AlaSQL.
Ihre Beispiel.
Bibliotheken erforderlich:
HINWEIS: Don ' T pass Undefinierte Werte an die Funktion. Generiert Datei erzeugen Warnmeldungen, wenn Sie versuchen, öffnen Sie in diesem Fall.
Anderen Optionen waren in der Lage zu konvertieren, JSON, CSV-Datei (nicht XLSX).