最近做一个项目,用到了javascript操纵excel以生成报表,下面是标有详细注解的实例
<html>
<head>
<script language=\"javascript\" type=\"text/javascript\">
</script><script language=\"javascript\" type=\"text/javascript\">
function MakeExcel(){
var i,j;
try {
var xls = new ActiveXObject ( \"Excel.Application\" );
}
catch(e) {
alert( \"要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 请点击【帮助】了解浏览器设置方法!\");
return \"\";
}
xls.visible =true; //设置excel为可见
var xlBook = xls.Workbooks.Add;
var xlsheet = xlBook.Worksheets(1);
<!--合并-->
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true;
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value=\"发卡记录\";
// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Interior.ColorIndex=5;//设置底色为蓝色
// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4;//设置字体色
// xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色 设置背景色 Rows(1).Font.ColorIndex=4
<!--设置行高-->
xlsheet.Rows(1).RowHeight = 25;
<!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13 -->
xlsheet.Rows(1).Font.Size=14;
<!--设置字体 设置选定区的字体 xlsheet.Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = \"黑体\" -->
xlsheet.Rows(1).Font.Name=\"黑体\";
<!--设置列宽 xlsheet.Columns(2)=14;-->
xlsheet.Columns(\"A:D\").ColumnWidth =18;
<!--设置显示字符而不是数字-->
xlsheet.Columns(2).NumberFormatLocal=\"@\";
xlsheet.Columns(7).NumberFormatLocal=\"@\";
//设置单元格内容自动换行 range.WrapText = true ;
//设置单元格内容水平对齐方式 range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式
//range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter
//range.WrapText = true; xlsheet.Rows(3).WrapText=true 自动换行
//设置标题栏
xlsheet.Cells(2,1).Value=\"卡号\";
xlsheet.Cells(2,2).Value=\"密码\";
xlsheet.Cells(2,3).Value=\"计费方式\";
xlsheet.Cells(2,4).Value=\"有效天数\";
xlsheet.Cells(2,5).Value=\"金额\";
xlsheet.Cells(2,6).Value=\"所属服务项目\";
xlsheet.Cells(2,7).Value=\"发卡时间\";
var oTable=document.all[\'fors:data\'];
var rowNum=oTable.rows.length;
for(i=2;i<=rowNum;i++){
for (j=1;j<=7;j++){
//html table类容写到excel
xlsheet.Cells(i+1,j).Value=oTable.rows(i-1).cells(j-1).innerHTML;
}
}
<!-- xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge; -->
// xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4
// for(mn=1,mn<=6;mn++) . xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit;
xlsheet.Columns.AutoFit;
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment =-4108;//居中
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108;
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10;
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2; //设置左边距
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight = 2;//设置右边距
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight = 2;//设置顶边距
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距
xls.UserControl = true; //很重要,不能省略,不然会出问题 意思是excel交由用户控制
xls=null;
xlBook=null;
xlsheet=null;
}
</script> <link href=\"css/styles3.css\" rel=\"stylesheet\" type=\"text/css\"/>
<title>ziyuanweihu</title>
</head>
<body>
<form id=\"fors\" method=\"post\" action=\"/WebModule/admins/card/showcard.faces\" enctype=\"application/x-www-form-urlencoded\">
<table id=\"fors:top\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
<tbody>
<tr>
<td class=\"left\"><img src=\"images/jiao1.gif\" alt=\"\" /></td>
<td class=\"topMiddle\"></td>
<td class=\"right\"><img src=\"images/jiao2.gif\" alt=\"\" /></td>
</tr>
</tbody>
</table>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
<tbody>
<tr>
<td class=\"middleLeft\"></td>
<td class=\"btstyle\"><table id=\"fors:sort\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"valign:center\" width=\"100%\">
<tbody>
<tr>
<td class=\"btstyle\"><input type=\"button\" name=\"fors:_id7\" value=\"生成excel文件\" onclick=\"MakeExcel()\" /><input type=\"submit\" name=\"fors:_id8\" value=\"返回\" /></td>
</tr>
</tbody>
</table>
<table id=\"fors:data\" border=\"1\" cellpadding=\"0\" cellspacing=\"1\" width=\"100%\">
<thead>
<tr>
<th scope=\"col\"><span id=\"fors:data:headerText1\">卡号</span></th>
<th scope=\"col\"><span id=\"fors:data:headerText2\">密码</span></th>
<th scope=\"col\"><span id=\"fors:data:headerText3\">计费方式</span></th>
<th scope=\"col\"><span id=\"fors:data:headerText4\">有效天数</span></th>
<th scope=\"col\">金额</th>
<th scope=\"col\"><span id=\"fors:data:headerText6\">所属服务项目</span></th>
<th scope=\"col\"><span id=\"fors:data:headerText7\">发卡时间</span></th>
</tr>
</thead>
<tbody>
<tr>
<td>h000010010</td>
<td>543860</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010011</td>
<td>683352</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010012</td>
<td>433215</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010013</td>
<td>393899</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010014</td>
<td>031736</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010015</td>
<td>188600</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010016</td>
<td>363407</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010017</td>
<td>175315</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010018</td>
<td>354437</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
<tr>
<td>h000010019</td>
<td>234750</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23 10:14:40.843</td>
</tr>
</tbody>
</table>
</td>
<td class=\"middleRight\"></td>
</tr>
</tbody>
</table>
<table id=\"fors:bottom\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
<tbody>
<tr>
<td class=\"left\">
<img src=\"images/jiao3.gif\" alt=\"\"/>
</td>
<td class=\"bottomMiddle\"> </td>
<td class=\"right\">
<img src=\"images/jiao4.gif\" alt=\"\"/>
</td>
</tr>
</tbody>
</table>
<input type=\"hidden\" name=\"fors\" value=\"fors\" /></form>
</body>
</html>