페이지에서 엑셀 시트로 표를 내보내는 것이 좋습니다. 코드 조각을 발견하고 잘 작동하지만 다운로드 한 파일은 xls에 저장됩니다. xlsx에서 저장하려면 어떻게해야합니까? ,엑셀 xslx로 페이지 내보내기
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
, base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
window.location.href = uri + base64(format(template, ctx))
}
})()
이 방법으로 XLSX 파일을 만들 수 없습니다. 또한 XLS 파일이 아니라 HTML이 포함 된 SpreadsheetML도 생성합니다. 터키 문자 문제는 http://stackoverflow.com/questions/25730008/encoding-utf-8-when-exporting-html-table-to-excel/25730640#25730640을 참조하십시오. HTML은 UFT-8로 인코딩되어야하며 접근 방식의 템플릿은 content-type 헤더로 확장되어야합니다. –
xlsx에서 파일을 저장하기 위해 @Axel Richter를 사용할 수 있습니까? 거기에 다른 접근법이 있습니까? – user3647419
인터넷 검색에서 "javascript create xlsx file"에 대한 검색 결과가 나타납니다. 그러나 나는 아무것도 테스트하지 못했습니다. 나는 클라이언트 쪽 것들 대신에 서버 쪽 (PHP, Java, .NET, ...) 솔루션을 사용할 것을 제안한다. 그것들에는 많은 것들이 있습니다. –