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 相关文章推荐
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
node.js中的fs.readdir方法使用说明
Dec 17 Javascript
jQuery内部原理和实现方式浅析
Feb 03 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
详解JavaScript的BUG和错误
May 07 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
简述Vue中容易被忽视的知识点
Dec 09 Javascript
使用refresh_token实现无感刷新页面
Apr 26 Javascript
TypeScript 内置高级类型编程示例
Sep 23 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
简单的PHP图片上传程序
2008/03/27 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
JavaScript与函数式编程解释
2007/04/27 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
AngularJS控制器详解及示例代码
2016/08/16 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python实现控制台输入密码的方法
2015/05/29 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
python 阶乘累加和的实例
2019/02/01 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
如何使用python切换hosts文件
2020/04/29 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
简单的JAVA编程面试题
2013/03/19 面试题
校长岗位职责
2013/11/26 职场文书
公司拓展活动方案
2014/02/13 职场文书
小学社会实践活动总结
2014/07/03 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
初三英语教学计划
2015/01/23 职场文书
工程质检员岗位职责
2015/04/08 职场文书
借钱欠条怎么写
2015/07/03 职场文书