>  기사  >  웹 프론트엔드  >  테이블 데이터를 js의 Excel 파일로 내보내기

테이블 데이터를 js의 Excel 파일로 내보내기

小云云
小云云원래의
2018-05-25 16:48:483059검색

이 기사에서는 주로 js에서 테이블 데이터를 Excel 파일로 내보내는 방법에 대한 몇 가지 코드와 예제를 공유합니다.

표를 엑셀로 변환하고 다운로드

(document).ready(function () {
(“#myBtn”).click(function () {    //点击下载按钮,执行方法 
                CreateExcel(“myTable”,”test”); 
            }); 
        }); 
        //将table导出到excel 
        var idTmr; 
        function getExplorer() {     //返回浏览器类型 
            var explorer = window.navigator.userAgent; 
            //ie 
            if (explorer.indexOf(“MSIE”) >= 0) { 
                return ‘ie’; 
            } 
            //firefox 
            else if (explorer.indexOf(“Firefox”) >= 0) { 
                return ‘Firefox’; 
            } 
            //Chrome 
            else if (explorer.indexOf(“Chrome”) >= 0) { 
                return ‘Chrome’; 
            } 
            //Opera 
            else if (explorer.indexOf(“Opera”) >= 0) { 
                return ‘Opera’; 
            } 
            //Safari 
            else if (explorer.indexOf(“Safari”) >= 0) { 
                return ‘Safari’; 
            } 
        } 
        function CreateExcel(tableid,fileName) { 
            if (getExplorer() == ‘ie’) { 
                var curTbl = document.getElementById(tableid); 
                var oXL = new ActiveXObject(“Excel.Application”); 
                var oWB = oXL.Workbooks.Add(); 
                var xlsheet = oWB.Worksheets(1); 
                var sel = document.body.createTextRange(); 
                sel.moveToElementText(curTbl); 
                sel.select(); 
                sel.execCommand(“Copy”); 
                xlsheet.Paste(); 
                oXL.Visible = true; 
                try { 
                    var fname = oXL.Application.GetSaveAsFilename(fileName + “.xls”,  //文件名和文件格式  但尝试改了一下fileName 这里并不影响 
                        “Excel Spreadsheets (.xls), .xls”); 
                } catch (e) { 
                    print(“Nested catch caught ” + e); 
                } finally { 
                    oWB.SaveAs(fname); 
                    oWB.Close(savechanges = false); 
                    oXL.Quit(); 
                    oXL = null; 
                    idTmr = window.setInterval(“Cleanup();”, 1); 
                } 
            } else { 
                tableToExcel(tableid,fileName)    //调用tableToExcex   table的id 和 要生成的文件名            } 
        } 
        function Cleanup() { 
            window.clearInterval(idTmr); 
            CollectGarbage(); 
        } 
        var tableToExcel = (function () { 
            var uri = ‘data:application/vnd.ms-excel;base64,’, 
                template = 
                    ‘

{table}

’, 
                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)) 
                a = document.createElement(“a”); 
                a.download = name; 
                a.href = uri + base64(format(template, ctx)); 
                document.body.appendChild(a); 
                a.click(); 
                document.body.removeChild(a); 
            } 
        })()

Download/Download excel

상황에 맞는 테이블 레이아웃
상품 결제일 상태
제품 1 23/11/2013 배송 예정
제품 2 10/11/2013 배송
제품 3 2013년 10월 20일 확인 예정
제품 4 20/10/2013 반품

관련 권장 사항:

js 내보내기 Excel 테이블이 영어 26자를 초과합니다. 솔루션 ES6

PHP는 기본 메소드를 사용하여 Excel 인스턴스 공유 내보내기

Excel 데이터를 내보내기 위한 PHP 클래스 라이브러리 사용 예

위 내용은 테이블 데이터를 js의 Excel 파일로 내보내기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.