js导出Excel表格

北慕城南 提交于 2020-04-02 05:39:11

js导出Excel表格

  直接上代码:

  红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句。如果返回值中没有这样的格式,红色部分可以不写。

 1 //Excel下载
 2 function base64(content) {
 3     return window.btoa(unescape(encodeURIComponent(content)));
 4 }
 5 function exportOffice(dom, tableID, fName) {
 6     var type = 'excel';
 7     var table = document.getElementById(tableID);
 8     var excelContent = table.innerHTML;
 9     var ddd="<td style=\"mso-number-format:'\\@';\">";
10     var result=((excelContent).toString()).replace(/<td(.*?)>/g,ddd);
11     console.log(result);
12     var excelFile = "<html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:" + type + "' xmlns='http://www.w3.org/TR/REC-html40'>";
13     excelFile += "<head>";
14     excelFile += "<meta http-equiv=Content-Type; content=text/html;charset=UTF-8>";
15     excelFile += "<!--[if gte mso 9]>";
16     excelFile += "<xml>";
17     excelFile += "<x:ExcelWorkbook>";
18     excelFile += "<x:ExcelWorksheets>";
19     excelFile += "<x:ExcelWorksheet>";
20     excelFile += "<x:Name>";
21     excelFile += "{worksheet}";
22     excelFile += "</x:Name>";
23     excelFile += "<x:WorksheetOptions>";
24     excelFile += "<x:DisplayGridlines/>";
25     excelFile += "</x:WorksheetOptions>";
26     excelFile += "</x:ExcelWorksheet>";
27     excelFile += "</x:ExcelWorksheets>";
28     excelFile += "</x:ExcelWorkbook>";
29     excelFile += "</xml>";
30     excelFile += "<![endif]-->";
31     excelFile += "</head>";
32     excelFile += "<body><table>";
33     excelFile += result;
34     excelFile += "</table></body>";
35     excelFile += "</html>";
36     var base64data = "base64," + base64(excelFile);
37     switch (type) {
38         case 'excel':
39             dom.href = 'data:application/vnd.ms-' + type + ';' + base64data;
40             ;//必须是a标签,否则无法下载改名
41             dom.download = fName;
42             break;
43     }
44 }

   引用:

  1、首先得是a标签

  2、this:指向a的点击

  3、'grid-basic':表格的id名

  4、'统计报表':导出Excel后的表格名

<a onClick="exportOffice(this,'grid-basic','统计报表')">导出Excel</a>

 

  附上转换红色部分参考文献:https://www.cnblogs.com/zhangym118/p/6378469.html

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!