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>