您的位置:首页 > Web前端 > JavaScript

JS 导出Web Table到Excel Demo(最简单)

2013-04-02 11:19 441 查看
1. 创建一个web项目

2. 创建一个JSP页面

3. 把下面的代码放入页面

4. 把IE的安全选项的前三个区域(Internet,本地Intranet,受信任的站点)中的ActiveX的应用全部启用。

5. 运行你创建的项目就可以测试了。

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<SCRIPT LANGUAGE="javascript">
function ExcelExport(tableid) {
//		alert(tableid);
var table = document.getElementById(tableid); //获取页面的table
var excel = new ActiveXObject("Excel.Application"); //实例化Excel.Application对象
//		alert(tableid);
var workB = excel.Workbooks.Add(); ////添加新的工作簿
var sheet = workB.ActiveSheet;
//var  sheet= workB.Worksheets(1);//该句代码和上句代码同意,都是激活一个sheet
/***************常用样式设置语句***************************************/
//sheet.Rows(1).WrapText  = false;  //自动换行设置
//sheet.Rows(1).Font.Size=18;//设置第一行的字体大小
//sheet.Rows(1).Interior.ColorIndex=2;//设置第一行背景色
//sheet.Rows(1).Font.ColorIndex=1;//设置第一行字体色
//sheet.Range(sheet.Cells(1,1),sheet.Cells(1,7)).mergecells=true;//第一行1到7单元格合并
sheet.Columns("A").ColumnWidth = 35;//设置列宽
sheet.Columns("B").ColumnWidth = 35;
//sheet.Columns("A:B").ColumnWidth =35;//另一种设置列宽的方式
sheet.Rows(1).RowHeight = 35;//设置行高
//sheet.Rows(1).Font.Name="黑体";//设置字体
//sheet.Columns.AutoFit;//所有列自适应宽度
//水平对齐方式(貌似-4108为水平居中)
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).HorizontalAlignment =-4108;
//垂直对齐方式
//sheet.Range( sheet.Cells(1,1),sheet.Cells(1,5)).VerticalAlignment  =-4108;
//根据Borders()中参数值设置各个方向边距,1,2,3,4--->top,buttom,left,right
//sheet.Range( sheet.Cells(2,1),sheet.Cells(1,5)).Borders(1).Weight = 2;
/**将页面table写入到Excel中,具体复杂情况(合并单元格等)可在这里面具体操作**********/
var LenRow = table.rows.length; //以下为循环遍历获取页面table的cell元素
for (i = 0; i < LenRow; i++) {
var lenCol = table.rows(i).cells.length;
for (j = 0; j < lenCol; j++) {
sheet.Cells(i + 1, j + 1).value = table.rows(i).cells(j).innerText; //通过该语句将table的每个
//cell赋予Excel 当前Active的sheet下的相应的cell下
}
}
excel.Visible = true;//设置excel为可见
excel.UserControl = true; //将Excel交由用户控制
}
</SCRIPT>
</head>
<body>
<input type="button" onclick="ExcelExport('tb_demo');" value="导出Excel"/>
<table id="tb_demo" border="1">
<tr>
<td>序号</td>
<td>名称</td>
<td>属性</td>
<td>标准</td>
<td>备注</td>
</tr>
<tr>
<td>1</td>
<td>name</td>
<td>property</td>
<td>standard</td>
<td>remark</td>
</tr>
<tr>
<td>2</td>
<td>name2</td>
<td>property2</td>
<td>standard2</td>
<td>remark2</td>
</tr>
<tr>
<td>3</td>
<td>name3</td>
<td>property3</td>
<td>standard3</td>
<td>remark3</td>
</tr>
</table>
</body>
</html>


ps:据说这种用法对于大型项目来说不太好,存在线程安全问题。

但是如果是做简单的导出,要求不高的话,可以借鉴。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: