介绍
小编给大家分享一下前端JavaScript如何写Excel,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
前端如何才能写Excel,其实也是比较简单的,只是没有接触这一块,当然这边讲的只是简单的入门。
这边主要讲述2种方式,一种是支持主流浏览器,一种是支持Ie浏览器
主流浏览器
这边主要是使用数据协议,通过数据协议解析Excel的Contenttype盾(应用程序/s excel)
所以这边格式就是“数据:+ - type; +内容的
excel的内容格式是有模版的如下:
& lt; html xmlns: o=皍rn: schemas-microsoft-com:办公室:office" xmlns: x=皍rn: schemas-microsoft-com:办公室:excel" xmlns=癶ttp://www.w3.org/TR/REC-html40"比; & lt; head> & lt;元charset=癠TF-8"祝辞& lt; !——(如果gte美索9)比; & lt; xml> & lt; x: ExcelWorkbook> & lt; x: ExcelWorksheets> & lt; x: ExcelWorksheet> & lt; x: Name> sheet</x: Name> & lt; x: WorksheetOptions> & lt; x: DisplayGridlines/比; & lt;/x: WorksheetOptions> & lt;/x: ExcelWorksheet> & lt;/x: ExcelWorksheets> & lt;/x: ExcelWorkbook> & lt;/xml> & lt;/head> & lt; body> {tableData} & lt;/body> & lt;/html>
然后就是就是根据上述模板进行创建即可,以下就是通过这种方式直接导出excel
(函数(){ var模板=& # 39;& lt; html xmlns: o=皍rn: schemas-microsoft-com:办公室:office"xmlns: x=皍rn: schemas-microsoft-com:办公室:excel"xmlns=癶ttp://www.w3.org/TR/REC-html40"祝辞& lt; head> & lt;元charset=癠TF-8"在& lt; !——(如果gte美索9)祝辞& lt; xml> & lt; x: ExcelWorkbook> & lt; x: ExcelWorksheets> & lt; x: ExcelWorksheet> & lt; x: Name> sheet & lt; x: WorksheetOptions> & lt; x: DisplayGridlines/祝辞& lt;/x: WorksheetOptions> & lt;/x: ExcelWorksheet> & lt;/x: ExcelWorksheets> & lt;/x: ExcelWorkbook> & lt;/xml> & lt;/head> & lt; body> {tableData} & lt;/body> & lt;/html> & # 39; var Excel_URL=& # 39;数据:应用程序/vnd.ms-excel; base64, & # 39; var Excel={ ToExcel:功能(数据){ var isIe=window.navigator.userAgent.toLocaleUpperCase () .indexOf(& # 39;三叉戟# 39;) 如果(isIe !==1) { this._IEExport(数据) 其他}{ this._otherExport(数据) } }, _otherExport:功能(数据){=& # 39;var内容& # 39; 如果(typeof data=https://www.yisu.com/zixun/=='字符串'){//传入id,获取表的内容 var避署=document.querySelector(数据) 内容=模板。替换({tableData}, ele.outerHTML) }//其他可以做更多操作 var aEle=document.createElement (' a ') aEle。href=Excel_URL + window.btoa (unescape (encodeURIComponent(内容))) aEle。下载='测试xls” aEle.click () } } 窗口。Excel=Excel })()
IE浏览器
IE下主要就是使用ActiveXObject来实现的:具体见如下代码
(函数(){ var模板=& # 39;& lt; html xmlns: o=皍rn: schemas-microsoft-com:办公室:office"xmlns: x=皍rn: schemas-microsoft-com:办公室:excel"xmlns=癶ttp://www.w3.org/TR/REC-html40"祝辞& lt; head> & lt;元charset=癠TF-8"在& lt; !——(如果gte美索9)祝辞& lt; xml> & lt; x: ExcelWorkbook> & lt; x: ExcelWorksheets> & lt; x: ExcelWorksheet> & lt; x: Name> sheet & lt; x: WorksheetOptions> & lt; x: DisplayGridlines/祝辞& lt;/x: WorksheetOptions> & lt;/x: ExcelWorksheet> & lt;/x: ExcelWorksheets> & lt;/x: ExcelWorkbook> & lt;/xml> & lt;/head> & lt; body> {tableData} & lt;/body> & lt;/html> & # 39; var Excel_URL=& # 39;数据:应用程序/vnd.ms-excel; base64, & # 39; var Excel={ ToExcel:功能(数据){ var isIe=window.navigator.userAgent.toLocaleUpperCase () .indexOf(& # 39;三叉戟# 39;) 如果(isIe !==1) { this._IEExport(数据) 其他}{ this._otherExport(数据) } }, _IEExport:功能(数据){//打开excel var oXL=new ActiveXObject (& # 39; Excel:应用# 39;)//新建工作博 var oWB=oXL.WorkBooks.Add ()//激活新建工作博 var oSheet=oWB.ActiveSheet 如果(typeof data=https://www.yisu.com/zixun/=='字符串'){//表id var=document.querySelector表(数据)//创建一个装内容的容器 var选?document.body.createTextRange ()//将表中的内容移入容器 sel.moveToElementText(表)//选中移入的内容 尝试{ console.log (sel.select) sel.select () }捕捉(e) { console.log (e) }//复制容器中的内容 sel.execCommand(“复制”)//黏贴到excel工作簿中 oSheet.Paste () }//关掉Excel var=oXL.Application.GetSaveAsFilename(文件名的测试。xls”、“Excel电子表格(* . xls) * xls”)//保存工作簿 oWB.SaveAs(文件名) oWB.close () oXL.quit () } } 窗口。Excel=Excel })()前端JavaScript如何写Excel