最近写些代码,实现把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>
分享到:
相关推荐
2. **构建Excel导出逻辑**:在JSP中,我们可以创建一个新的JSP页面(如excel.jsp),该页面的主要任务是将HTML表格转换为Excel格式。这通常涉及到读取HTML表格的数据并生成Excel文件的二进制内容。 3. **设置响应头...
这种方式利用了浏览器对MIME类型的识别能力以及响应头中的`Content-Disposition`字段来模拟Excel文件的发送过程,从而实现了JSP页面内容到Excel文件的导出。 4. **扩展应用**: - **动态生成Excel内容**:可以在...
在JavaWeb开发中,JSP(JavaServer Pages)页面经常被用来构建动态用户界面,而Excel作为常用的电子表格工具,其数据处理能力强大,广泛应用于数据管理与分析。本篇文章将详细探讨如何在JSP中实现Excel的导出和导入...
在日常开发中,我们需要能够把页面上一个表格的内容导出到Excel中,然后用户修改后再导回到表格中的功能。 在这里,通过使用JQUERY+JQUERY UI+JSON-LIB+POI实现这个功能数据导出设计:通过使用JQUERY分析表格的...
在Java编程环境中,将JSP表格中的数据导出到Excel文件是一种常见的需求,尤其是在数据分析、报表生成和数据交换等场景中。本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及...
本文将详细介绍如何在Java和JSP环境中利用Apache POI库导出Excel表格,包括必要的库导入、代码示例和关键步骤解析。 #### Apache POI库简介 Apache POI是Apache软件基金会的一个开源项目,它提供了一组用于处理...
总结来说,将JSP页面的数据导出到Excel涉及多个步骤,包括设置MIME类型、创建Excel文件、从JSP表格中提取数据、转换HTML到Excel格式、生成文件并提供下载。这个过程可以通过Apache POI等库简化,同时要注意性能和...
总之,JSP导出Excel和Word是常见的功能需求,通过Apache POI库可以轻松实现。正确设置响应头和使用流处理可以确保文件能被正确下载,同时根据实际需求调整数据处理和样式设置,能够创建符合业务需求的导出文件。
在Java Web开发中,将JSP页面导出到Excel是一种常见的需求,这使得用户能够方便地处理和分析网页上的数据。以下是如何实现这一功能的详细步骤: 首先,我们需要一个简单的JSP页面,其中包含要导出的数据。在这个...
用Javascript实现的将网页table中的数据导出到excel表格中!JSP ASP.NET 静态页面都可以使用!代码简单实用!
一个完整的导出html页面数据到excel表内,超简单
例如,如果你不希望在客户端生成CSV,而是希望通过服务器生成并提供下载,你可以使用JSP将收集到的数据发送到服务器,然后使用如Apache POI这样的库生成Excel文件,最后返回给客户端下载。 总的来说,将HTML表格...
本篇文章将详细讲解如何在JSP页面中实现内容的Excel打印输出,以及相关的预览和定制打印规格功能。 首先,我们要了解JSP(JavaServer Pages)是一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,从而在...
5. **数据导出**:查询数据库中的数据,再使用Java Excel API将其写入到Excel文件中。 #### 六、总结 通过Java Excel API,我们可以方便地实现Excel文件的读取与写入,结合数据库技术可以实现更高级别的数据管理...
总结,JSP导出Excel涉及到数据处理、文件流操作、Excel格式设置等多个方面,理解并掌握这些知识点,能有效解决实际项目中的问题,提升用户体验。在实践过程中,不断学习和优化代码,可以使得导出功能更加高效、稳定...
通过以上步骤,我们可以实现在JSP环境中动态生成并导出Excel文件,不仅提高了数据处理的灵活性,还增强了用户体验。无论是对于日常的数据管理还是数据分析场景,这一技术的应用都显得尤为重要且实用。
在IT领域,特别是Web开发中,JSP(JavaServer Pages)...在JSP中导入导出Excel文件,Apache POI是一个强大且灵活的工具。掌握其基本用法后,可以高效地处理各种Excel文件相关的任务,从而提升Web应用的数据处理能力。
在IT行业中,尤其是在Web开发领域,常常需要将网页上的数据导出到Excel文件,以便用户进行数据分析或存储。本主题聚焦于"JSP中table导出多表头excel"的技术实现,这是一种常见的需求,特别是在展示复杂表格数据时,...