js生成excel

今天整理库存时发现的,这边备份一下;

建议操作文件这种类型的工作能不用js实现就别用js实现;


1、

<html>   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=GBK">   
<meta http-equiv="pragma" content="no-cache">   
<script language="jscript">   
function replaceHtml(replacedStr,repStr,endStr){   
    var replacedStrF = "";   
    var replacedStrB = "";   
    var repStrIndex = replacedStr.indexOf(repStr);   
    while(repStrIndex != -1){   
        replacedStrF = replacedStr.substring(0,repStrIndex);   
        replacedStrB = replacedStr.substring(repStrIndex,replacedStr.length);   
        replacedStrB = replacedStrB.substring(replacedStrB.indexOf(endStr)+1,replacedStrB.length);   
        replacedStr = replacedStrF + replacedStrB;   
        repStrIndex = replacedStr.indexOf(repStr);   
    }   
    return replacedStr;   
}   
//elTalbeOut 这个为导出内容的外层表格,主要是设置border之类的样式,elDiv则是整个导出的html部分   
function htmlToExcel(elTableOut,elDiv){   
    try{   
        //设置导出前的数据,为导出后返回格式而设置   
        var elDivStrBak = elDiv.innerHTML;   
        //设置table的border=1,这样到excel中就有表格线 ps:感谢双面提醒   
        elTableOut.border=1;   
        //过滤elDiv内容   
        var elDivStr = elDiv.innerHTML;   
        elDivStr = replaceHtml(elDivStr,"<A",">");   
        elDivStr = replaceHtml(elDivStr,"</A",">");   
        elDiv.innerHTML=elDivStr;      
           
        var oRangeRef = document.body.createTextRange();   
        oRangeRef.moveToElementText( elDiv );   
        oRangeRef.execCommand("Copy");   
           
        //返回格式变换以前的内容   
        elDiv.innerHTML = elDivStrBak;   
        //内容数据可能很大,所以赋空   
        elDivStrBak = "";   
        elDivStr = "";   
           
        var oXL = new ActiveXObject("Excel.Application")   
        var oWB = oXL.Workbooks.Add ;   
        var oSheet = oWB.ActiveSheet ;   
        oSheet.Paste();   
        oSheet.Cells.NumberFormatLocal = "@";   
        oSheet.Columns("D:D").Select   
        oXL.Selection.ColumnWidth = 20  
        oXL.Visible = true;        
        oSheet = null;   
        oWB = null;   
        appExcel = null;   
    }catch(e){   
        alert(e.description)   
    }   
}   
</script>   
<title></title></head>   
  
<body leftmargin="0" topmargin="0">   
<table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">   
<tr>   
<td height="40" align="center" valign="middle"><INPUT type="button" value="导出" id="dcExcel" onClick="htmlToExcel(document.getElementById('elTableOut'),document.getElementById('elDiv'));"></td>   
  </tr>   
  
</table>   
  
<div id="elDiv">   
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#000000" bgcolor="#000000" id="elTableOut">   
  <tr>   
    <td height="40" align="center" valign="middle" colspan="12" bgcolor="#FFFFFF"><strong>状况汇总表</strong></td>   
  </tr>   
  <tr>   
    <td width="6%" rowspan="2" align="center" bgcolor="#FFFFFF">序号</td>   
    <td width="20%" rowspan="2" align="center" bgcolor="#FFFFFF">a</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">b</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">c</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">d</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">e</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">f</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">g</td>   
    <td height="25" colspan="4" align="center" bgcolor="#FFFFFF">h</td>   
  </tr>   
  <tr>   
    <td width="7%" height="25" align="center" bgcolor="#FFFFFF">i</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">j</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">k</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">l</td>   
  </tr>    
</table>   
</div>   
  
</body>   
</html>  



2、

<html>   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=GBK">   
<meta http-equiv="pragma" content="no-cache">   
<script language="jscript">   
function replaceHtml(replacedStr,repStr,endStr){   
    var replacedStrF = "";   
    var replacedStrB = "";   
    var repStrIndex = replacedStr.indexOf(repStr);   
    while(repStrIndex != -1){   
        replacedStrF = replacedStr.substring(0,repStrIndex);   
        replacedStrB = replacedStr.substring(repStrIndex,replacedStr.length);   
        replacedStrB = replacedStrB.substring(replacedStrB.indexOf(endStr)+1,replacedStrB.length);   
        replacedStr = replacedStrF + replacedStrB;   
        repStrIndex = replacedStr.indexOf(repStr);   
    }   
    return replacedStr;   
}   
//elTalbeOut 这个为导出内容的外层表格,主要是设置border之类的样式,elDiv则是整个导出的html部分   
function htmlToExcel(elTableOut,elDiv){   
    try{   
        //设置导出前的数据,为导出后返回格式而设置   
        var elDivStrBak = elDiv.innerHTML;   
        //设置table的border=1,这样到excel中就有表格线 ps:感谢双面提醒   
        elTableOut.border=1;   
        //过滤elDiv内容   
        var elDivStr = elDiv.innerHTML;   
        elDivStr = replaceHtml(elDivStr,"<A",">");   
        elDivStr = replaceHtml(elDivStr,"</A",">");   
        elDiv.innerHTML=elDivStr;      
           
        var oRangeRef = document.body.createTextRange();   
        oRangeRef.moveToElementText( elDiv );   
        oRangeRef.execCommand("Copy");   
           
        //返回格式变换以前的内容   
        elDiv.innerHTML = elDivStrBak;   
        //内容数据可能很大,所以赋空   
        elDivStrBak = "";   
        elDivStr = "";   
           
        var oXL = new ActiveXObject("Excel.Application")   
        var oWB = oXL.Workbooks.Add ;   
        var oSheet = oWB.ActiveSheet ;   
        oSheet.Paste();   
        oSheet.Cells.NumberFormatLocal = "@";   
        oSheet.Columns("D:D").Select   
        oXL.Selection.ColumnWidth = 20  
        oXL.Visible = true;        
        oSheet = null;   
        oWB = null;   
        appExcel = null;  
alert("222"); 
    }catch(e){   
        alert(e.description)   
    }   
}
function copy_file()
{
alert("0");
var fso, f2; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 


// 获取C:\根目录下的文件句柄 
f2 = fso.GetFile("c:\\testfile.txt"); 
alert("1")
// 拷贝文件到\temp目录下 
f2.Copy ("c:\\testfile12.txt"); 
alert("222");
}
</script>   
<title></title></head>   
  
<body leftmargin="0" topmargin="0">   
<table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">   
<tr>   
<td height="40" align="center" valign="middle"><INPUT type="button" value="导出" id="dcExcel" onClick="copy_file()"></td>   
  </tr>   
  
</table>   
  
<div id="elDiv">   
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#000000" bgcolor="#000000" id="elTableOut">   
  <tr>   
    <td height="40" align="center" valign="middle" colspan="12" bgcolor="#FFFFFF"><strong>状况汇总表</strong></td>   
  </tr>   
  <tr>   
    <td width="6%" rowspan="2" align="center" bgcolor="#FFFFFF">序号</td>   
    <td width="20%" rowspan="2" align="center" bgcolor="#FFFFFF">a</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">b</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">c</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">d</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">e</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">f</td>   
    <td width="7%" rowspan="2" align="center" bgcolor="#FFFFFF">g</td>   
    <td height="25" colspan="4" align="center" bgcolor="#FFFFFF">h</td>   
  </tr>   
  <tr>   
    <td width="7%" height="25" align="center" bgcolor="#FFFFFF">i</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">j</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">k</td>   
    <td width="7%" align="center" bgcolor="#FFFFFF">l</td>   
  </tr>    
</table>   
</div>   
  
</body>   
</html>  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值