导出为 xls 文件格式

Posted

技术标签:

【中文标题】导出为 xls 文件格式【英文标题】:Export to xls file format 【发布时间】:2016-12-26 08:33:50 【问题描述】:

我需要一个带有导出到 xls 的 JQuery 网格或一个用于导出到 xlsx 文件格式的 javascript 代码。我正在尝试这样的事情:

    function emitXmlHeader(testTypes) 
        var headerRow =  '<ss:Row>\n';
        for (var colName in testTypes) 
            headerRow += '  <ss:Cell>\n';
            headerRow += '    <ss:Data ss:Type="String">';
            headerRow += colName + '</ss:Data>\n';
            headerRow += '  </ss:Cell>\n';        
        
        headerRow += '</ss:Row>\n';    
        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' + headerRow;
   ;

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

   function jsonToSsXml(data, testTypes) 
       var row;
       var col;
       var xml;

       xml = emitXmlHeader(testTypes);

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

           for (col in testTypes) 
                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;  
    ;

    function download(content, filename, contentType) 
        if (!contentType) contentType = 'application/octet-stream';
        var a = document.getElementById('exportExcel');
        var blob = new Blob(["\ufeff", content], 
        'type': contentType
    );
    a.href = window.URL.createObjectURL(blob);
    a.download = filename;
    a.click();
    ;

    function excelExport() 

        var data = [
             
                  "firstname": "John",
                  "lastname": "Smith",
                  "date": "2015-11-11"
             ,
         
                  "firstname": "Jim",
                  "lastname": "Bains",
                  "date": "2015-11-11",
             
    ];
        var testTypes = 
              "firstname": "String",
              "lastname": "String",
              "date": "Date"
    ;

    var excel = jsonToSsXml(data, testTypes);           
    download(excel, 'test.xls', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    

打开 xls 文件时出错。我想格式中有一些东西。你能给我一些支持吗?

【问题讨论】:

【参考方案1】:

看看 Shield UI 的 Grid example - 使用它,您可以无缝设置网格以导出为 Excel 2003 和 2007(及更高版本)格式。

可以在here 找到他们关于导出功能的完整文档。它说您也可以导出为 PDF,而不管数据来源和用于呈现它的控件。

【讨论】:

以上是关于导出为 xls 文件格式的主要内容,如果未能解决你的问题,请参考以下文章

sqlyog中如何将查询到的数据导出为xls格式的excel文件

mysql 导出表中数据为excel的xls格式文件

使用Navicat for mysql导出数据库中某一个表的结构为xls格式

如何将access中的数据导出为EXCEL文件?

php中如何导入导出CSV格式的文件

php 导入/导出 csv 文件