最近写些代码,实现把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()">
<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>
分享到:
相关推荐
java实现JSP表格数据导出到EXCEL文件
这段时间闲来无事,想研究一下办公系统中的导出和导入excel表格功能,最后终于弄出来,现在给广大需要的新手朋友参考使用
一种很简单的将JSP页面的table导出excel的方法
java及jsp下导出excel表格,真心好用
在日常开发中,我们需要能够把页面上一个表格的内容导出到Excel中,然后用户修改后再导回到表格中的功能。 在这里,通过使用JQUERY+JQUERY UI+JSON-LIB+POI实现这个功能数据导出设计:通过使用JQUERY分析表格的...
一个完整的导出html页面数据到excel表内,超简单
全网最新最详细的前端导出、使用jq+jsp框架导出elementui表格到excel,适合vue或jq框架
jsp表格导出到EXCEL优质资料.doc
此文档简介了如何在java中快速生成报表,并以excel的方式打开和保存
table表格把数据导出到excel中到本地显示
JSP中导入导出Excel文件.txt
将jsp页面的表格导出为excel文件
用Javascript实现的将网页table中的数据导出到excel表格中!JSP ASP.NET 静态页面都可以使用!代码简单实用!
jsp导出excel一般性问题及解决办法
查询数据跳转到当前的jsp,通过获取后台的接口数据导出excel文件,最后再自动跳转到上一个的页面。
这是一个简单的javaweb项目例子,使用的是struts2技术,在后台的action中写好一个list,然后给这个list填充好内容,之后在jsp前台显示,并可以通过导出到excel文件,存储在本地指定的位置。
java,jsp,javascript中如何实现将统计表格保存成excel文件,这是一份文档,讲的说起来那时相当详细,下了就知道,很详细的文法。
jsp+Servlet实现的最简单的Excel表导入导出数据库的操作
实现Excel导入与导出功能,并WEB页面附带进度条对Excel进行美化如:设置背景色、线条、格子大小等。 使用步骤很简单 1.解压下载好的项目,这里需要...(这里添加下载数据遍成为导出Excel功能了,清空数据遍为模板)