`
谷超
  • 浏览: 165949 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

导表格内容到excel或导出页面指定内容到excel中,利用JSP打印表格内容或打印指定区域中的内容

阅读更多

最近写些代码,实现把table中的数据导出到excel中,并能够打印table的内容,代码很简单,但觉得很有用,粘出来和大家分享!其中可以选择table中的行进行导出或打印,自己认为还是不错的!

 

 

<!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=gb2312">
<title>无标题文档</title>
<script language="javascript">
	function exp(){
		try
		{
			var oXL = new ActiveXObject("Excel.Application");
			// Get a new workbook.
			var flag = false;
			var oWB = oXL.Workbooks.Add();
			var oSheet = oWB.ActiveSheet;
			var table = document.getElementsByTagName("table")[0];
			var hang = table.rows.length;//行
			var lie = table.rows(0).cells.length;//列
			var k = 1;
	
			//导出表格头
			for(var i=0;i<lie;i++) {
	          oSheet.Cells(k,i+1).numberformatlocal="@";
	          oSheet.Cells(k,i+1).Font.size="9";
			  oSheet.Cells(k,i+1).value = table.rows(0).cells(i).innerText;
			}
			//导出被选中的表格内容
			for (i=1;i<hang;i++){
				for (j=0;j<lie;j++){
					if(j == 0){
						if (table.rows(i).cells(j).children){
							if (table.rows(i).cells(j).children(0)){
								if (table.rows(i).cells(j).children(0).tagName == "INPUT" && table.rows(i).cells(j).children(0).type == "checkbox"){
									if (!table.rows(i).cells(j).children(0).checked){
										flag = false;
									}else{
										flag = true;
										k = k+1;
										oSheet.Cells(k,1).numberformatlocal="@";
        								oSheet.Cells(k,1).Font.size="9";
										oSheet.Cells(k,1).value = i;
									} 
								}
							}
						}
					}else{
						if(flag){
							 oSheet.Cells(k,j+1).numberformatlocal="@";
                             oSheet.Cells(k,j+1).Font.size="9";
						     oSheet.Cells(k,j+1).value = table.rows(i).cells(j).innerText;
						}
					} 
				}
			}			
		
			//设置自动调整列宽
	    oSheet.Columns.AutoFit;
	    
			oXL.Visible = true;
			oXL.UserControl = true;
	    oXL = null;
	    oWB = null;
	    oSheet = null;
	    }catch(e){
	    	alert("如果您没有中断导出过程,请确定您已经安装了Excel;\n并且在导出时,IE的安全级别设置为最低,请点击【帮助】了解浏览器设置方法!");
	    }
	}
	
	function pnt(){
		var printObjName = document.getElementsByTagName("table")[0].getAttribute("id");
		//alert(printObjName)
		var url="/gcprint.jsp?tableName="+printObjName;
	  window.open(url,'','toolbar=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes');
	}
	
</script>
</head>

<body>
<form action="" method="post">
<input name="button" type="button" value="导出到excel" onClick="exp()">&nbsp;
<input name="button1" type="button" value="显示打印" onClick="pnt()">
<table id="tbid" width="1039" border="1">
  <tr>
    <td width="55">标记</td>
    <td width="127">销售单号</td>
    <td width="134">纳税人识别号</td>
    <td width="189">客户名称</td>
    <td width="249">机器编号</td>
    </tr>
  <tr>
    <td><input name="checkbox" type="checkbox" value="checkbox1">1</td>
    <td>xs09080300004</td>
    <td>110102101432267</td>
    <td>北京中商百年冷气工程安装中心</td>
    <td>0000021510000011</td>
    </tr>
  <tr>
    <td><input name="checkbox" type="checkbox" value="checkbox2">2</td>
    <td>xs09080300005</td>
    <td>aaaaa</td>
    <td>nnnnnn</td>
    <td>0000021510000012</td>
    </tr>
  <tr>
    <td><input name="checkbox" type="checkbox" value="checkbox3">3</td>
    <td>xs09080300006</td>
    <td>bbbbb</td>
    <td>lllll</td>
    <td>0000021510000012</td>
  </tr>
</table>

</form>
</body>
</html>

上面的代码是导出table中的内容到excel,当然也可以导出页面中的指定内容到excel中,导出过程是这样的:得到页面指定区域的html内容,把内容拷贝到剪切板中,再创建excel,把剪切板的内容粘贴到工作簿中,代码段如下:

var content = window.document.all('ooo').outerHTML;

window.clipboardData.setData("Text",content);

var ExApp = new ActiveXObject("Excel.Application");
var ExWBk = ExApp.workbooks.add();

ExWBk.worksheets(1).Paste;

很方便吧,哦也是这么想的!

有一个问题不是很确定,就是拷贝到剪切板的内容,能够拷贝到什么文件中,上面是拷贝到了excel中,是不是能够粘贴到其他的文档之中呢?以后再摸索了!

 

 

下面的代码是打印被选中的table中的信息,当然也可以打印页面中的指定位置,比如有<div id="printArea">ddd</div>,也可以打印,只是代码稍做变化,下面的init方法中,

var name = '<%=request.getParameter("tableName")%>';
var obj = eval('window.opener.'+tableName);

printArea.innerHTML =  obj.outerHTML;

总之打印的过程是点击打印按钮,弹出一个新的页面,页面中显示要打印的内容,依赖IE进行打印即可

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<META http-equiv="Content-Type" content="text/html; charset=GBK">
<TITLE>打印</TITLE>
<style type="text/css">
<!--
.large {
	FONT-SIZE: 16px;
	FONT-FAMILY: 黑体;
	FONT-WEIGHT: normal;
}

.noPrint {
	display: none
}

IMG {
	display: none
}

INPUT {
	display: none
}

TABLE {
	border-collapse: collapse;
}

TD {
	border: solid windowtext 1px;
	FONT-SIZE: 9pt;
}

A {
	cursor: default;
}

A:link {
	COLOR: black;
	TEXT-DECORATION: none
	disabled:true
}

A:visited {
	COLOR: black;
	TEXT-DECORATION: none
}

A:hover {
	COLOR: black;
	TEXT-DECORATION: none
}
.resizeLine{
	background-color: black;
}
TR.TrLight {
	BACKGROUND-COLOR: white
}

TR.TrDark {
	BACKGROUND-COLOR:white
}

TD.TdDark {
	BACKGROUND-COLOR: white
}

TD.TdLight {
	BACKGROUND-COLOR: white
}

-->
</style>
<script>
function init(){
	var tableName = '<%=request.getParameter("tableName")%>';
	var tableObj = eval('window.opener.'+tableName);//得到父窗口中tableName的element元素,等价于window.opener.document.getElementById(tableName)
	var hang = tableObj.rows.length;//行
	var mid = "";
	for(i=1;i<hang;i++){
		if (tableObj.rows(i).cells(0).children(0).tagName == "INPUT" && tableObj.rows(i).cells(0).children(0).type == "checkbox"){
			if (tableObj.rows(i).cells(0).children(0).checked){
					mid += 	tableObj.rows(i).outerHTML;
			}
		}
	
	}
	var total = "<table>"+mid+"</table>"
	printArea.innerHTML = total;
}
</script>
</HEAD>


<body onload="init()">

<form id='printArea' >

</form>

</body>
</HTML>
0
0
分享到:
评论

相关推荐

    JSP页面导出EXCEL简单方法

    2. **构建Excel导出逻辑**:在JSP中,我们可以创建一个新的JSP页面(如excel.jsp),该页面的主要任务是将HTML表格转换为Excel格式。这通常涉及到读取HTML表格的数据并生成Excel文件的二进制内容。 3. **设置响应头...

    导出jsp页面为excel文档

    这种方式利用了浏览器对MIME类型的识别能力以及响应头中的`Content-Disposition`字段来模拟Excel文件的发送过程,从而实现了JSP页面内容到Excel文件的导出。 4. **扩展应用**: - **动态生成Excel内容**:可以在...

    javaweb JSP页面导出和导入excel表格

    在JavaWeb开发中,JSP(JavaServer Pages)页面经常被用来构建动态用户界面,而Excel作为常用的电子表格工具,其数据处理能力强大,广泛应用于数据管理与分析。本篇文章将详细探讨如何在JSP中实现Excel的导出和导入...

    jsp实现HTML表格导出和导入Excel功能

    在日常开发中,我们需要能够把页面上一个表格的内容导出到Excel中,然后用户修改后再导回到表格中的功能。 在这里,通过使用JQUERY+JQUERY UI+JSON-LIB+POI实现这个功能数据导出设计:通过使用JQUERY分析表格的...

    java实现JSP表格数据导出到EXCEL文件

    在Java编程环境中,将JSP表格中的数据导出到Excel文件是一种常见的需求,尤其是在数据分析、报表生成和数据交换等场景中。本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及...

    java及jsp下导出excel表格

    本文将详细介绍如何在Java和JSP环境中利用Apache POI库导出Excel表格,包括必要的库导入、代码示例和关键步骤解析。 #### Apache POI库简介 Apache POI是Apache软件基金会的一个开源项目,它提供了一组用于处理...

    jsp表格导出到EXCEL优质资料.doc

    总结来说,将JSP页面的数据导出到Excel涉及多个步骤,包括设置MIME类型、创建Excel文件、从JSP表格中提取数据、转换HTML到Excel格式、生成文件并提供下载。这个过程可以通过Apache POI等库简化,同时要注意性能和...

    jsp导出Excel;简单实用!导出Excel;导出Word

    总之,JSP导出Excel和Word是常见的功能需求,通过Apache POI库可以轻松实现。正确设置响应头和使用流处理可以确保文件能被正确下载,同时根据实际需求调整数据处理和样式设置,能够创建符合业务需求的导出文件。

    jsp表格导出到EXCEL.docx

    在Java Web开发中,将JSP页面导出到Excel是一种常见的需求,这使得用户能够方便地处理和分析网页上的数据。以下是如何实现这一功能的详细步骤: 首先,我们需要一个简单的JSP页面,其中包含要导出的数据。在这个...

    将网页table表格中导出到Excel表格中

    用Javascript实现的将网页table中的数据导出到excel表格中!JSP ASP.NET 静态页面都可以使用!代码简单实用!

    java导出页面表格数据到excel表

    一个完整的导出html页面数据到excel表内,超简单

    table表格导出到excel

    例如,如果你不希望在客户端生成CSV,而是希望通过服务器生成并提供下载,你可以使用JSP将收集到的数据发送到服务器,然后使用如Apache POI这样的库生成Excel文件,最后返回给客户端下载。 总的来说,将HTML表格...

    实现jsp页面里的内容通过Excel打印输出来

    本篇文章将详细讲解如何在JSP页面中实现内容的Excel打印输出,以及相关的预览和定制打印规格功能。 首先,我们要了解JSP(JavaServer Pages)是一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,从而在...

    excel 表格导出导入 数据库

    5. **数据导出**:查询数据库中的数据,再使用Java Excel API将其写入到Excel文件中。 #### 六、总结 通过Java Excel API,我们可以方便地实现Excel文件的读取与写入,结合数据库技术可以实现更高级别的数据管理...

    jsp导出excel一般问题及汇总

    总结,JSP导出Excel涉及到数据处理、文件流操作、Excel格式设置等多个方面,理解并掌握这些知识点,能有效解决实际项目中的问题,提升用户体验。在实践过程中,不断学习和优化代码,可以使得导出功能更加高效、稳定...

    如何在jsp导出到Excel文件

    通过以上步骤,我们可以实现在JSP环境中动态生成并导出Excel文件,不仅提高了数据处理的灵活性,还增强了用户体验。无论是对于日常的数据管理还是数据分析场景,这一技术的应用都显得尤为重要且实用。

    JSP中导入导出Excel文件.

    在IT领域,特别是Web开发中,JSP(JavaServer Pages)...在JSP中导入导出Excel文件,Apache POI是一个强大且灵活的工具。掌握其基本用法后,可以高效地处理各种Excel文件相关的任务,从而提升Web应用的数据处理能力。

    JSP中table导出多表头excel

    在IT行业中,尤其是在Web开发领域,常常需要将网页上的数据导出到Excel文件,以便用户进行数据分析或存储。本主题聚焦于"JSP中table导出多表头excel"的技术实现,这是一种常见的需求,特别是在展示复杂表格数据时,...

Global site tag (gtag.js) - Google Analytics