2016-08-19 7 views
2

Мне нужна сетка JQuery с экспортом в xls или код javascript для экспорта в формат xlsx. Я пытаюсь что-то вроде этого:Экспорт в xls формат файла

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. Я полагаю, что есть что-то в форматировании. Можете ли вы оказать мне некоторую поддержку?

ответ

0

Посмотрите на это Grid example от Shield UI - вы можете легко настроить Grid для экспорта в Excel 2003 и 2007 (и более поздние) форматы.

Их полную документацию по функциональности экспорта можно найти here. В нем говорится, что вы также можете экспортировать в PDF, независимо от источника данных и элемента управления, используемого для его рендеринга.

Смежные вопросы