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

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" οnclick="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:据说这种用法对于大型项目来说不太好,存在线程安全问题。

但是如果是做简单的导出,要求不高的话,可以借鉴。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值