js操作html生成excel


詳細






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)
	}
}




</code></pre><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>


 
 
</div>
                            </div>
                        </div>