js操作html生成excel

[code]
<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>
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值