2016-08-19 4 views
2

xlsx 파일 형식으로 내보내기위한 xls 또는 javascript 코드로 내보내는 JQuery 표가 필요합니다. 나는 다음과 같은 것을 시도하고있다 :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

Shield UI로이 Grid example을 살펴보십시오. 그리드를 원활하게 설정하여 Excel 2003 및 2007 (이상) 형식으로 내보낼 수 있습니다.

내보내기 기능에 대한 전체 설명서는 here입니다. 그것은 데이터 출처와 그것을 렌더링하는 데 사용 된 컨트롤에 관계없이 PDF로 내보낼 수 있다고 말합니다.