- 浏览: 480651 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
学渣村的好村长:
很
java 列表转树形 -
wawj0819:
...
java 列表转树形 -
fireinjava:
LyAn_爱踢爱死 写道我有疑问,关于数组时你说collect ...
mybatis sql in 查询 -
LyAn_爱踢爱死:
我有疑问,关于数组时你说collection="ar ...
mybatis sql in 查询 -
yrsheng:
不行!楼主你真的试过吗?
Spring mvc 传递数组
平时用js导出table有些不足,导出的Excel内容也不够好看。
所以写了个通用的将Table导出为Excel的方法,可完成表格导出(不支持嵌套table)。
js计算cellStrArray部分参考http://fireinjava.iteye.com/admin/blogs/759190
代码如下:
构造字符串:每个对象以row,col,rowSpan,colSpan,value形式组成串,以便Jxl来addCell、mergeCells。
说明:jxl创建Cell用的是 WritableSheet.addCell(new Label(col, row,value,style))
跨行跨列用的是WritableSheet.mergeCells(col, row, col2,row2)
/** 浏览器判断 */ var Sys = {}; var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) Sys.ie = ua.match(/msie ([\d.]+)/)[1]; else if (document.getBoxObjectFor) Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]; function containsArray(array, obj) { for (var i = 0; i < array.length; i++) { if (array[i] == obj) { return i; break; } } return -1; } Array.prototype.contains = function(obj) { return containsArray(this, obj); } function exportTableToJxlExcel(sheetName,tableId) { var offsetLeftArray = new Array(); var cell;// 单元格Dom var col;// 单元格实际所在列 var cellStr;// 每个cell以row,col,rowSpan,colSpan,value形式 var cellStrArray = []; var objTab = document.getElementById(tableId); // 遍历第一次取出offsetLeft集合 for (var i = 0; i < objTab.rows.length; i++) { for (var j = 0; j < objTab.rows[i].cells.length; j++) { cell = objTab.rows[i].cells[j]; if (offsetLeftArray.contains(cell.offsetLeft) == -1) offsetLeftArray.push(cell.offsetLeft); } } offsetLeftArray.sort(function(x, y) { return parseInt(x) - parseInt(y); }); //alert("offsetLeft集合:" + offsetLeftArray.join(',')); // 遍历第二次生成cellStrArray for (var i = 0; i < objTab.rows.length; i++) { for (var j = 0; j < objTab.rows[i].cells.length; j++) { cell = objTab.rows[i].cells[j]; col = offsetLeftArray.contains(cell.offsetLeft); cellStr = i + ',' + col + ',' + cell.rowSpan + ',' + cell.colSpan + "," + (Sys.firefox?cell.textContent:cell.innerText); cellStrArray.push(cellStr); } } // 显示 //var str = "行,列,rowSpan,colSpan,值\n"; //str += cellStrArray.join('\n'); //alert(str); //把cellStrArray传到后台 buffalo.remoteCall("ReportExcelExport.export", ['sheet名称',cellStrArray], function(reply){ var result = reply.getResult(); if(result!=null && result.length>0){ document.location.href = "<%=request.getContextPath()%>/prj/common/download.jsp?fileName="+result; }else{ alert("无相关记录"); } }); }
java后台部分:
Jxl生成EXCEL(其中ExcelUtil参考 http://fireinjava.iteye.com/blog/702905 )
public String exportToJxlExcel(String sheetName, String[] cellStrArray) { try { String fileName = "E:/table.xls";// TODO FileOutputStream os = new FileOutputStream(fileName); if (cellStrArray != null && cellStrArray.length > 0) { WritableWorkbook wwb = Workbook.createWorkbook(os); WritableCellFormat wcf_title = ExcelUtil.createWcfTitle(); WritableCellFormat wcf_text = ExcelUtil.createWcfText(); WritableSheet ws = wwb.createSheet(sheetName, 0); for (int i = 0; i < 20; i++) ws.setColumnView(i, 20); Label lbl = null; String[] objProps = null; int col; int row; int rowSpan; int colSpan; for (String objStr : cellStrArray) {// 每个对象以row,col,rowSpan,colSpan,value形式 objProps = objStr.split(","); col = Integer.parseInt(objProps[1]); row = Integer.parseInt(objProps[0]); rowSpan = Integer.parseInt(objProps[2]); colSpan = Integer.parseInt(objProps[3]); lbl = new Label(col, row, objProps[4], row == 0 ? wcf_title : wcf_text); ws.addCell(lbl); if (rowSpan > 1 || colSpan > 1) ws.mergeCells(col, row, col + colSpan - 1, row + rowSpan - 1); } wwb.write(); wwb.close(); os.close(); os.flush(); return fileName; } } catch (Exception e) { e.printStackTrace(); } return null; }
前台提交到后台的值,如:
[0,0,1,1,品牌, 0,1,1,1,型号, 0,2,1,1,数量(单位:万), 0,3,1,1,百分比, 1,0,3,1,LG, 1,1,1,1,KF510, 1,2,1,1,0, 1,3,1,1,0.02%, 2,1,1,1,KG129, 2,2,1,1,0.001, 2,3,1,1,0.1%, 3,1,1,1,合计, 3,2,1,1,0.001, 3,3,1,1,0.12, 4,0,1,2,合计, 4,2,1,1,0.001, 4,3,1,1, ]
来个简单的效果图:
发表评论
-
将编码为GBK的Java源文件批量转为UTF-8
2016-09-10 11:41 1593转自 http://my.oschina.net/binny ... -
判断上传的文件是否图片格式
2015-08-16 01:49 4621转自 http://stackoverflow.co ... -
StreamCorruptedException invalid type code 34
2014-12-15 22:47 1200反序列的时候抛错: java.io.StreamCor ... -
ant property 修改
2013-12-17 16:57 3014ant借助antcrontrib.jar修改propert ... -
websphere liberty 安装 部署
2013-08-21 00:24 5897websphere application server l ... -
java 列表转树形
2013-02-01 10:31 28059往往要将数据库中的菜单配置转成树形结构展示到前台,这边提供 ... -
判断文件是否UTF-8编码
2012-12-04 08:50 3889判断文件是否UTF-8编码: 对于UTF-8编码 ... -
java replaceAll 的类似group用法
2012-08-30 23:25 2335replaceAll比较特殊的用法介绍一个: eg:把中括号 ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2012-05-25 10:42 1312项目在Tomcat跑的时候报Bad version numbe ... -
weblogic出现response already committed
2011-11-30 15:06 5787jsp页面导出时在weblogic下会出现response a ... -
XML解析 Invalid byte 2 of 2-byte UTF-8 sequence
2011-10-10 00:32 1818String xmlStr = "<?xml ... -
VBS脚本设置Java环境变量
2011-07-26 16:09 2187转自 http://blog.csdn.net/sunyuji ... -
jsp获取网站域名 域名解析
2011-07-22 17:23 14086部署主机如果有弄域名解析的话访问http://www.doma ... -
在顶层iframe页面添加图片div
2011-06-27 11:59 2855又解决了一个问题...之前想太复杂了... 父页面ht ... -
apache转发 js 跨域
2011-01-24 10:20 5154安装Apache HTTP Server 打开apache安 ... -
MyEclipse 启动tomcat的时候报cannot connect to vm
2010-12-22 00:58 3171MyEclipse 启动tomcat的时候突然报cannot ... -
Eclipse常用快捷键
2010-09-20 10:23 1386http://www.eclipse.org/downlo ... -
Java打Tag CvsClient
2010-08-26 21:16 2395增量编译的时候需要一个一个文件打Tag,不方便,网上也没发现现 ... -
Tomcat布署
2010-08-16 19:25 11811.项目布署 tomcat安装目录下加个配置文件即可 ... -
JSP文件上传 无刷新
2010-08-09 09:14 2022本文转自http://www.iteye.com/topic ...
相关推荐
"根据jxl,对html中的table进行导出excel"这个标题所涉及的技术点主要围绕两个核心部分:一是如何解析HTML中的table元素,二是如何利用Java的jxl库将这些数据导出到Excel文件中。 首先,HTML表格是由`<table>`标签...
本篇文章将深入探讨JXL库在操作Excel和数据库导出Excel文件方面的应用。 首先,我们来了解JXL的基本用法。JXL支持读取和写入Biff8格式的Excel文件(即97-2003版本的.XLS文件),这涵盖了大部分常见的Excel文件需求...
JXL全称为Java Excel API,它是一个强大的开源Java库,允许开发者在Java应用程序中读取、修改和创建Excel文件(.xls格式)。本篇文章将详细介绍如何利用JXL将数据库的数据导出到Excel。 首先,要使用JXL,你需要在...
本文将详细介绍如何使用JavaScript(js)和JXL库来实现从JSP页面的table表格导出到Excel,同时确保兼容所有浏览器以及处理复杂的table布局。 首先,让我们了解关键知识点: 1. **JavaScript (js)**:JavaScript是...
有时,我们需要将Oracle数据库中的数据导出到Excel文件,以便进行进一步的处理或分析。本文将详细介绍如何利用Java编程语言,结合JXL库来实现这一过程,特别是处理BLOB类型的文件。 首先,理解BLOB类型。BLOB...
### jtable 导出excel 超过65535 新建一个sheet代码 在进行数据处理时,经常会遇到需要将大量数据从Java应用程序中的`JTable`导出到Excel文件的需求。然而,在实际操作过程中,我们可能会遇到一个问题:当数据量...
总的来说,这个示例提供了从Oracle数据库导出数据到Excel的一种解决方案,使用了JXL库来创建和操作Excel文件,同时依赖Oracle的JDBC驱动进行数据库连接。通过理解和应用这些技术,开发者可以构建自己的数据导出工具...
用于前端传递table值到Java后台,进行导出Excel表格操作
而当涉及到Excel文件的处理时,JXL库是一个广泛使用的Java库,它允许开发者读取、写入以及修改Excel文件。本篇文章将深入探讨如何利用JXL库在Java环境下操作Excel文件,并将其数据与Oracle数据库进行交互。 首先,...
在压缩包的文件名称列表中,`exportTableUploadTable`可能代表了两个关键操作:`exportTable`可能是一个示例代码,用于演示如何将数据导出到Excel表格;而`uploadTable`可能是另一个示例,展示了如何处理用户上传的...
本文采用的是JExcelApi,它通过JXL API来处理Excel文件。 #### 实现步骤 1. **建立数据库连接**:使用JDBC建立与数据库的连接。 2. **执行查询语句**:编写SQL查询语句并执行,获取结果集。 3. **处理结果集**:...
以上就是使用Apache POI、JExcelApi(jxl)和JSP导出Excel的简要介绍。在实际应用中,根据项目需求和性能考虑,可以选择适合的库。Apache POI由于其强大的功能和对.xlsx的支持,现在更为常用,但JExcelApi在处理.xls...
### Jquery与jxl插件导出Excel示例知识点解析 #### jQuery简介 jQuery是一个快速、小巧、功能丰富的JavaScript库。它通过一个简洁的API使得HTML文档遍历和操作、事件处理、动画和Ajax等操作变得更加容易。jQuery的...
JXL还支持创建表格(Table)和列表(List)对象,用于处理复杂的Excel数据结构。表格可以自定义样式,包括边框、背景色等。列表则方便地将Java集合数据直接映射到Excel。 ### 7. 其他功能 JXL还提供了公式计算、...
2. **使用工具导出**:MySQL Workbench等图形化管理工具提供了数据导出功能,可以选择特定的表或查询结果,并指定导出格式为Excel或CSV。 3. **编程导出**:使用编程语言如Python的pymysql库或Java的JDBC连接MySQL...
总结来说,通过集成`jxl.jar`库,安卓开发者可以在应用中方便地将SQLite数据库中的数据导出为Excel文件。这不仅增强了应用的功能,也为用户提供了更灵活的数据管理方式。在实际开发中,还可以根据具体需求进行优化,...
通常,我们会使用`jxl.jar`文件,这是一个用于处理Excel文件的Java库。接下来按照以下步骤操作: 1. **创建Workbook**:`Workbook`对象代表一个Excel文件,可以通过以下两种方式创建: - 从输入流中创建: ```...
在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出或数据分析的场景下。本文将详细讲解如何使用Java Excel API(jxl库)来读取和操作Excel文件,并将其与数据库交互。 首先,要从Excel文件读取...