javascript操作excel生成报表全攻略


Posted in Javascript onMay 04, 2014

最近做一个项目,用到了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>
Javascript 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
Js中sort()方法的用法
Nov 04 Javascript
用jquery来定位
Feb 20 Javascript
javascript操作JSON的要领总结
Dec 09 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
微信小程序动态增加按钮组件
Sep 14 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
javascript如何使用bind指定接收者
May 04 #Javascript
用jquery.sortElements实现table排序
May 04 #Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 #Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 #Javascript
javascript实现2048游戏示例
May 04 #Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 #Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 #Javascript
You might like
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
ext jquery 简单比较
2010/04/07 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
python下如何让web元素的生成更简单的分析
2008/07/17 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
python机器学习实战之树回归详解
2017/12/20 Python
python复制文件到指定目录的实例
2018/04/27 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
爱游人:Travelliker
2017/09/05 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
员工自我鉴定
2013/10/09 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
美术学专业求职信
2014/07/23 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
读后感作文评语
2014/12/25 职场文书
公积金贷款承诺书
2015/04/30 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
php png失真的原因及解决办法
2021/10/24 PHP