91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

前端JavaScript如何寫Excel

發布時間:2020-12-02 13:33:03 來源:億速云 閱讀:412 作者:小新 欄目:web開發

小編給大家分享一下前端JavaScript如何寫Excel,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

前端如何才能寫excel,其實也是比較簡單的,只是沒有接觸這一塊,當然這邊講的只是簡單的入門。
這邊主要講述2種方式,一種是支持主流瀏覽器,一種是支持Ie瀏覽器

主流瀏覽器

這邊主要是使用data協議,通過data協議解析excel的Contenttype(application/vnd.ms-excel)
所以這邊格式就是 ‘data:+Content-type;+內容’
excel的內容格式是有模版的如下:

<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>
        <meta charset="UTF-8"><!--[if gte mso 9]>
        <xml>
            <x:ExcelWorkbook>
                <x:ExcelWorksheets>
                    <x:ExcelWorksheet>
                        <x:Name>sheet</x:Name>
                        <x:WorksheetOptions>
                            <x:DisplayGridlines/>
                        </x:WorksheetOptions>
                    </x:ExcelWorksheet>
                </x:ExcelWorksheets>
            </x:ExcelWorkbook></xml>
    </head>
    <body>
        {tableData}
    </body>
</html>

然后就是就是根據上述模板進行創建即可,以下就是通過這種方式直接導出excel

(function() {
    var 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><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>sheet</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>{tableData}</body></html>'
    var Excel_URL = 'data:application/vnd.ms-excel;base64,'
    var Excel = {
        ToExcel: function (data) {
            var isIe = window.navigator.userAgent.toLocaleUpperCase().indexOf('trident')
            if (isIe !== -1) {
                this._IEExport(data)
            } else {
                this._otherExport(data)
            }
        },
        _otherExport: function (data) {
            var content = ''
            if (typeof data === 'string') {
                // 傳入id,獲取table的內容
                var ele = document.querySelector(data)
                content = template.replace('{tableData}', ele.outerHTML)
            } // else可以做更多操作
            var aEle = document.createElement('a')
            aEle.href = Excel_URL + window.btoa(unescape(encodeURIComponent(content)))
            aEle.download = '測試.xls'
            aEle.click()
        }
    }
    window.Excel = Excel
})()

IE瀏覽器

IE下主要就是使用ActiveXObject來實現的:具體見如下代碼

(function() {
    var 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><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>sheet</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>{tableData}</body></html>'
    var Excel_URL = 'data:application/vnd.ms-excel;base64,'
    var Excel = {
        ToExcel: function (data) {
            var isIe = window.navigator.userAgent.toLocaleUpperCase().indexOf('trident')
            if (isIe !== -1) {
                this._IEExport(data)
            } else {
                this._otherExport(data)
            }
        },
        _IEExport: function (data) {
            // 打開excel
            var oXL = new ActiveXObject('Excel:Application')
            // 新建工作博
            var oWB = oXL.WorkBooks.Add()
            // 激活新建工作博
            var oSheet = oWB.ActiveSheet

            if (typeof data === 'string') {
                // table id
                var table = document.querySelector(data)
                // 創建一個裝內容的容器
                var sel = document.body.createTextRange()
                // 將table中的內容移入容器
                sel.moveToElementText(table)
                // 選中移入的內容
                try {
                    console.log(sel.select)
                    sel.select()
                } catch (e) {
                    console.log(e)
                }
                // 復制容器中的內容
                sel.execCommand("Copy")
                // 黏貼到excel工作簿中
                oSheet.Paste()
            }
            // 關掉Excel
            var filename = oXL.Application.GetSaveAsFilename('test.xls', 'Excel Spreadsheet (*.xls),*.xls')
            // 保存工作簿
            oWB.SaveAs(filename)
            oWB.close()
            oXL.quit()
        }
    }
    window.Excel = Excel
})()

看完了這篇文章,相信你對前端JavaScript如何寫Excel有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

共和县| 那曲县| 通化县| 桂东县| 禹城市| 含山县| 临泽县| 二手房| 呼伦贝尔市| 孟连| 邻水| 寿宁县| 中阳县| 平果县| 卓尼县| 兴安盟| 老河口市| 嘉定区| 乌兰察布市| 巩留县| 石台县| 荣成市| 开江县| 勃利县| 台州市| 乌拉特前旗| 西林县| 遂平县| 彭山县| 天水市| 南漳县| 湖北省| 阿城市| 彰化市| 巧家县| 光泽县| 屏东县| 中方县| 云林县| 白朗县| 莱芜市|