zoukankan      html  css  js  c++  java
  • JavaScript导出excel文件实现

      1 function getXlsFromTbl(inTblId, inWindow, fname) {
      2     try {
      3         var allStr = "";
      4         var curStr = "";
      5         // alert("getXlsFromTbl");
      6         if (inTblId != null && inTblId != "" && inTblId != "null") {
      7             curStr = getTblData(inTblId, inWindow);
      8         }
      9         // alert("curStr="+curStr);
     10         if (curStr != null) {
     11             allStr += curStr;
     12         } else {
     13             alert("你要导出的表格不存在!");
     14             return;
     15         }
     16         var fileName = getExcelFileName(fname);
     17         doFileExport(fileName, allStr);
     18     } catch (e) {
     19         alert("导出发生异常:" + e.name + "->" + e.description + "!");
     20     }
     21 }
     22 function getTblData(inTbl, inWindow) {
     23     var rows = 0;
     24     // alert("getTblData is " + inTbl + "==" + inWindow);
     25     var tblDocument = document;
     26     if (!!inWindow && inWindow != "") {
     27         if (!document.all(inWindow)) {
     28             return null;
     29         } else {
     30             tblDocument = eval(inWindow).document;
     31         }
     32     }
     33     var curTbl = tblDocument.getElementById(inTbl);
     34     var outStr = "";
     35     if (curTbl != null) {
     36         for (var j = 0; j < curTbl.rows.length; j++) {
     37             // alert("j is " + j);
     38             for (var i = 0; i < curTbl.rows[j].cells.length; i++) {
     39                 // alert("i is " + i);
     40                 if (i == 0 && rows > 0) {
     41                     outStr += " 	";
     42                     rows -= 1;
     43                 }
     44                 outStr += curTbl.rows[j].cells[i].innerText + "	";
     45                 // alert();
     46                 if (curTbl.rows[j].cells[i].colSpan > 1) {
     47                     for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
     48                         outStr += " 	";
     49                     }
     50                 }
     51                 if (i == 0) {
     52                     if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
     53                         rows = curTbl.rows[j].cells[i].rowSpan - 1;
     54                     }
     55                 }
     56             }
     57             if (j == 0)
     58                 outStr = replaceAll(outStr, "
    ", ""); //替换掉回车换行
     59             outStr += "
    ";
     60             // alert(outStr);
     61         }
     62     } else {
     63         outStr = null;
     64         alert(inTbl + "不存在!");
     65     }
     66     return outStr;
     67 }
     68 function getExcelFileName(fname) {
     69     var d = new Date();
     70     var curYear = d.getYear();
     71     var curMonth = "" + (d.getMonth() + 1);
     72     var curDate = "" + d.getDate();
     73     var curHour = "" + d.getHours();
     74     var curMinute = "" + d.getMinutes();
     75     var curSecond = "" + d.getSeconds();
     76     if (curMonth.length == 1) {
     77         curMonth = "0" + curMonth;
     78     }
     79     if (curDate.length == 1) {
     80         curDate = "0" + curDate;
     81     }
     82     if (curHour.length == 1) {
     83         curHour = "0" + curHour;
     84     }
     85     if (curMinute.length == 1) {
     86         curMinute = "0" + curMinute;
     87     }
     88     if (curSecond.length == 1) {
     89         curSecond = "0" + curSecond;
     90     }
     91     var fileName = fname + "_" + curYear + curMonth + curDate + "_" + curHour
     92             + curMinute + curSecond + ".csv.html";
     93     // alert(fileName);
     94     return fileName;
     95 }
     96 function doFileExport(inName, inStr) {
     97     var xlsWin = null;
     98     if (!!document.all("glbHideFrm")) {
     99         xlsWin = glbHideFrm;
    100     } else {
    101         var width = 5;
    102         var height = 5;
    103         var openPara = "left=" + (window.screen.width / 2 - width / 2)
    104                 + ",top=" + (window.screen.height / 2 - height / 2)
    105                 + ",scrollbars=no,width=" + width + ",height=" + height;
    106         xlsWin = window.open("", "_blank", openPara);
    107     }
    108     xlsWin.document.write(inStr);
    109     xlsWin.document.close();
    110     
    111     xlsWin.document.execCommand('Saveas', true, inName);
    112     xlsWin.close();
    113 }
    114 
    115 function replaceAll(ss, s, r) {
    116     var rs = ss;
    117     // alert(rs+"="+r);
    118     // alert(rs.indexOf(s));
    119     while (rs.indexOf(s) != -1) {
    120         // alert("A="+rs);
    121         rs = rs.replace(s, r);
    122         // alert("B="+rs);
    123     }
    124     return rs;
    125 }
  • 相关阅读:
    sql测试
    sql时间和日期函数
    递归算法
    冒泡排序
    Ajax
    省市区下拉框三级联动
    Repeater用法
    WIndows form Linq多表联合
    C# 递归算羊
    C# 定义一个学生的结构体,输入学生信息,学号,姓名,身高,按身高排序输出
  • 原文地址:https://www.cnblogs.com/zhc-hnust/p/5503201.html
Copyright © 2011-2022 走看看