前端JavaScript如何写Excel

  介绍

小编给大家分享一下前端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