ホームページ >ウェブフロントエンド >jsチュートリアル >フロントエンド JavaScript を使用して Excel を作成するコード例
この記事の内容は、フロントエンド JavaScript で Excel を記述するためのコード例に関するものです。一定の参考価値があります。必要な友人が参考にすることができます。お役に立てれば幸いです。
フロントエンドで Excel を記述する方法は実際には比較的簡単ですが、ここでは触れていません。もちろん、ここで話していることは簡単な紹介にすぎません。
ここでは主に 2 つの方法について説明します。1 つはメインストリーム ブラウザをサポートする方法、もう 1 つは Ie ブラウザをサポートする方法です。
メインストリーム ブラウザ
ここでは主に、データ プロトコルは Excel の Contenttype (application/vnd.ms-excel) を解析します
したがって、ここでの形式は 'data: Content-type; content' です
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 })()
ここで学んだところです。優れた Excel を作成するには、API についてさらに深く理解する必要があります。
この記事はここで終了です。さらに興味深い記事があります。内容については、PHP 中国語 Web サイトの JavaScript ビデオ チュートリアル 列に注目してください。
以上がフロントエンド JavaScript を使用して Excel を作成するコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。