zoukankan      html  css  js  c++  java
  • js导出Excel表格

    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

      

  • 相关阅读:
    BZOJ2337 [HNOI2011]XOR和路径
    「学习笔记」3.31代码学习
    uva live 12846 A Daisy Puzzle Game
    Cannot use ImageField because Pillow is not installed
    Android点击Button水波纹效果
    hdu 1241 Oil Deposits
    c++ 字符输入读取
    clutter recoder
    C/C++获取数组长度
    vector array and normal stanard array
  • 原文地址:https://www.cnblogs.com/nelsonlei/p/10197086.html
Copyright © 2011-2022 走看看