JSON到javascript中的excel文件

JSON到javascript中的excel文件,javascript,Javascript,我使用以下代码从JSON对象创建excel文件数据,然后单击按钮下载它 getExcelFile: function() { testJson = validation_data; testTypes = { "name": "String", "city": "String", "country": "String",

我使用以下代码从JSON对象创建excel文件数据,然后单击按钮下载它

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');
        }
getExcelFile:function(){
testJson=验证数据;
测试类型={
“名称”:“字符串”,
“城市”:“字符串”,
“国家”:“字符串”,
“生日”:“字符串”,
“金额”:“数量”
};
emitXmlHeader=函数(){
返回'\n'+
“\n”+
“\n”+
“\n\n”;
};
emitXmlFooter=函数(){
返回“\n\n”+
“\n”+
“\n”;
};
jsonToSsXml=函数(jsonObject){
var行;
var-col;
var-xml;
变量数据=jsonObject的类型!=“object”
?JSON.parse(jsonObject)
:jsonObject;
xml=emitXmlHeader();
对于(行=0;行

但创建的文件未在Microsoft Office 2007中打开,并显示错误“文件可能已损坏”。请帮助。

我最近通过使用找到了这个问题的解决方案

他们的

所需图书馆:

<script src="http://alasql.org/console/alasql.min.js"></script> 
<script src="http://alasql.org/console/xlsx.core.min.js"></script> 

注意:不要将未定义的值传递给函数。在这种情况下,如果您试图打开生成的文件,则会生成警告消息


其他选项可以将JSON转换为CSV(而不是XLSX)。

请参阅前面的堆栈溢出。这可能有用。祝你好运。谢谢@Nayana_Das对你的帮助。但是你提到的问题有一段代码,可以将JSON转换成CSV格式。我想将我的JSON对象转换为XLSX格式。希望此模块能帮助您检查,从这里,您将获得git存储库链接,您可以在那里下载该模块并进行计算。@Nayana_Das:解析ipaddress中的JSON数据是否有帮助,例如:127.0.0.1:8000/courses/?format=JSON并生成XLSX表作为输出
<script src="http://alasql.org/console/alasql.min.js"></script> 
<script src="http://alasql.org/console/xlsx.core.min.js"></script>