js前端导出Excel的方法

需求:

要求把项目中的table表格导出Excel

需求分析及解决:

既然需要导出,是报表的可能性比较大,我的项目中就是这样,那既然是报表导出,可以是前端导出,也可以是后端导出(技术包括POI或者报表工具等),这篇文章主
要是网上找的前端导出,既然是前端导出又是报表就需要有数据,所以数据都需要你提前做好相应填充

代码:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>html 表格导出</title>
 <script language="JavaScript" type="text/javascript"> 

  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';
   }
  } 

 //获取到类型需要判断当前浏览器需要调用的方法,目前项目中火狐,谷歌,360没有问题
  //win10自带的IE无法导出
  function exportExcel(tableid) {
   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("Excel.xls", "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)
   }
  }
  function Cleanup() {
   window.clearInterval(idTmr);
   CollectGarbage();
  } 

 //判断浏览器后调用的方法,把table的id传入即可
  var tableToExcel = (function() {
   var uri = 'data:application/vnd.ms-excel;base64,',
     template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
     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))
   }
  })() 

 </script>
</head>
<body> 

<div > 

 <button type="button" onclick="exportExcel('tableExcel')">导出Excel</button>
</div>
<div id="myDiv">
<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
 <tr>
  <td colspan="5" align="center">html 表格导出道Excel</td>
 </tr>
 <tr> 

  <td>列标题</td>
 </tr>
 <tr>
  <td>aaa</td>
  <td>bbb</td>
  <td>ccc</td>
  <td>ddd</td>
  <td>eee</td>
 </tr>
 <tr>
  <td>AAA</td>
  <td>BBB</td>
  <td>CCC</td>
  <td>DDD</td>
  <td>EEE</td>
 </tr>
 <tr>
  <td>FFF</td>
  <td>GGG</td>
  <td>HHH</td>
  <td>III</td>
  <td>JJJ</td>
 </tr>
</table>
</div>
</body>
</html> 

重点:

把此代码复制到记事本,命名为.html文件,用浏览器打开即可查看是否可以导出,如果可以导入项目中,把数据填充即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • js导入导出excel(实例代码)

    导入: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml" ><head>     <title>Untitled Page</title></head><script language="javascript" type="text/javascript">function importXLS(fileName){ 

  • JS Excel读取和写入操作(模板操作)实现代码

    本人是在实际项目中摸索出,JS读写Excel(模板)数据,包括怎么用JS把图片插入Excel中.首先,添加一个公用的模板地址JS,如下: AddZDaddress.js 复制代码 代码如下: /////////////////////////////////////////////////////////////////////////////////////////////////// ////DocName:信任站点地址添加--AddZDaddress.js ////Author:lify

  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • JS兼容浏览器的导出Excel(CSV)文件的方法

    Js导出表格为Excel文件 的常见一种办法是调用:ActiveXObject("Excel.Application") ,但是这种方法有局限性,只能在IE系列下的浏览器里实现,兼容性方面不理想. 经测试,采用本文推荐的方法能兼容性较好的导出表格内容到Excel文件. 复制代码 代码如下: var str = "博客, 域名\nBlog, 2\njb51.net, 3";var uri = 'data:text/csv;charset=utf-8,' + str;

  • Js 导出table内容到Excel的简单实例

    复制代码 代码如下: function ExportToExcel(tableId) //读取表格中每个单元到EXCEL中  {     try{                   var curTbl = document.getElementById(tableId);             var oXL = new ActiveXObject("Excel.Application");             //创建AX对象excel              var o

  • JavaScript将Web页面内容导出到Word及Excel的方法

    本文实例讲述了JavaScript将Web页面内容导出到Word及Excel的方法.分享给大家供大家参考.具体实现方法如下: <HTML> <HEAD> <title>WEB页面导出为EXCEL文档的方法 </title> </HEAD> <body> <BR> <table id = "PrintA" width="100%" border="1" cel

  • 通过Javascript读取本地Excel文件内容的代码示例

    读取本地Excel文件内容的Javascript代码: 复制代码 代码如下: <script type="text/javascript">function read_excel(){ var filePath="D:\abcd9.com.xls"; //要读取的xls    var sheet_id=2; //读取第2个表    var row_start=3; //从第3行开始读取    var tempStr='';    try{       

  • JavaScript将页面表格导出为Excel的具体实现

    复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>导出Excel</TITLE> <script type="text/javascript"> var idTmr = ""; function killExcelProcess(appE

  • JS将表单导出成EXCEL的实例代码

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head>  <title> new docum

  • 可以读取EXCEL文件的js代码第1/2页

    首页给个有中文说明的例子,下面的例子很多大家可以多测试. 复制代码 代码如下: <script language="javascript" type="text/javascript"><!-- function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try{ excelApp = new ActiveXObject("Excel.Applicatio

随机推荐