- 浏览: 441583 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
sunwang810812:
万分感谢中!!!!!这么多年终于看到一个可运行可解决的方案!! ...
POI 后台生成Excel,在前台显示进度 -
zzb7728317:
LZ正解
Spring Jackson AjaxFileUpload 没有执行回调函数的解决办法 -
sleeper_qp:
lz是在源码上修改的么? 源码的话你重新编译一遍了么? 可 ...
由nutch readseg -dump 中文编码乱码想到的…… -
shenjian430:
请问你改好的程序在写在哪了?
由nutch readseg -dump 中文编码乱码想到的…… -
yinxusen:
It seems to be the bug occur in ...
Mahout Local模式 执行example的注意点
使用Apache POI和DWR
poi用于在后台生成Excel,用DWR在前台显示后台生成Excel的进度
基本的生成Excel类:
ExcelHelper.java
public class ExcelHelper extends Thread{ private int rowIndex=0; private int count; private String fileName; private String sheetName; private List<String[]> dataList; public ExcelHelper(String fileName, String sheetName, List<String[]> dataList) { this.fileName = fileName; this.sheetName = sheetName; this.dataList = dataList; this.count=dataList.size(); } @Override public void run() { try { if (rowIndex==0) { generateWorkbook(); } } catch (IOException e) { e.printStackTrace(); } } /** * 生成Excel文件 * * @param fileName * 要生成的Excel文件名(可用绝对或相对路径) * @param sheetName * 生成的Excel文件中的sheet名 * @param dataList * 要放入Excel文件的内容 * @throws IOException */ public void generateWorkbook() throws IOException { Workbook wb = null; if (fileName.endsWith(".xlsx")) { wb = new XSSFWorkbook(); } else if (fileName.endsWith(".xls")) { wb = new HSSFWorkbook(); } else { fileName = fileName.concat(".xls"); wb = new HSSFWorkbook(); } CellStyle cellStyle = wb.createCellStyle(); Font font = wb.createFont(); font.setColor(HSSFColor.RED.index); cellStyle.setFont(font); Sheet sheet = wb.createSheet(sheetName); rowIndex = 0; for (String[] rowData : dataList) { Row row = sheet.createRow(rowIndex); rowIndex++; int cellIndex = 0; for (String cellData : rowData) { Cell cell = row.createCell(cellIndex); cell.setCellValue(cellData); cell.setCellStyle(cellStyle); cellIndex++; } } FileOutputStream fileOut = new FileOutputStream(fileName); wb.write(fileOut); fileOut.close(); } public int getRowIndex() { return rowIndex; } public int getCount() { return count; } }
DWR操作类:
ExcelHelperDWR.java
public class ExcelHelperDWR { private static Map<Long, ExcelHelper> excelHelperMap; public ExcelHelperDWR() { if (excelHelperMap == null) { excelHelperMap = new HashMap<Long, ExcelHelper>(); } } public int getRowIndex(long threadId) { ExcelHelper excelHelper = excelHelperMap.get(threadId); if (excelHelper.getRowIndex()<excelHelper.getCount()) { return excelHelper.getRowIndex(); }else { return -1; } } public long beginProcess(String fileName, String sheetName) { //test case List<String[]> dataList = new ArrayList<String[]>(); for (int i = 0; i < 1000; i++) { dataList.add(new String[] { "1", "2612601001", "学生1", "123", "3", null, "", "13712345678" }); dataList.add(new String[] { "1", "2612601001", "学生2", "123", "3", "", "", "13712345678" }); dataList.add(new String[] { "1", "2612601001", "学生3", "123", "3", "", "", "13712345678" }); dataList.add(new String[] { "1", "2612601001", "学生4", "123", "3", "", "", "13712345678" }); } //end test case ExcelHelper excelHelper = new ExcelHelper(fileName, sheetName, dataList); excelHelper.start(); long threadId = excelHelper.getId(); excelHelperMap.put(threadId, excelHelper); return threadId; } }
前台index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type='text/javascript' src='dwr/interface/ExcelHelperDWR.js'></script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script type="text/javascript"> var generateProgress; function beginProcess() { ExcelHelperDWR.beginProcess("D://我的Excel.xlsx", "sheet1",invoke); } function invoke(threadId) { generateProgress=window.setInterval("ExcelHelperDWR.getRowIndex("+threadId+", invokeCB)", 500); } function invokeCB(data) { if (data==-1) { window.clearInterval(generateProgress); document.getElementById("data").innerHTML = "生成Excel ok!"; } else { document.getElementById("data").innerHTML = data; } } </script> </head> <body> <input type="button" onclick="beginProcess()" value="generateExcel" /> <div id="data"></div> </body> </html>
OK了,很简易~
发表评论
-
hibernate的Criteria Query(转)
2014-06-29 21:22 716当查询数据时,人们往往需要设置查询条件。在SQL或HQL语句 ... -
【转】hibernate 中 Criteria 的使用介绍
2014-06-29 21:21 969转自:http://www.blogjava.net/jjs ... -
【转】Hibernate中Criteria的完整用法
2014-06-29 21:20 721转自:http://www.cnblogs.com/maba ... -
Java读写Oracle中的BLOB和CLOB
2013-10-16 18:00 2011转:http://www.iteye.com/topic/6 ... -
Spring的事务管理入门:编程式事务管理(TransactionTemplate)
2013-10-15 16:20 1029可有效应用于Oracle 临时表的insert和select ... -
jdbcTemplate 调用存储过程和回到函数
2013-10-15 09:09 3775转:http://blog.csdn.net/dancelo ... -
Spring3核心技术之JdbcTemplate
2013-10-15 09:03 1329转:http://zhou137520.iteye.com/ ... -
验证码在WebLogic下报错java.io.IOException: response already committed
2013-05-06 14:16 2608我的登录验证码代码,一个jsp,在Tomcat下没有问题,但 ... -
Struts2在eclipse的console中总是出现WARN OgnlValueStack:45 - Could not find property
2013-04-17 18:00 1728struts2 在发开时,控制台如输出大量警告信息,太烦人 ... -
【转】Eclipse自动关闭解决方法及eclipse.ini设置
2013-03-29 15:21 3809转自:http://liujun5563.blog.163. ... -
[转]批量将Java源代码文件的编码从GBK转为UTF-8
2012-11-12 13:43 1508转自:http://my.oschina.net/binny/ ... -
对代理模式与Java动态代理类的理解
2012-09-25 01:51 01. 代理模式 代理模式的作用是:为其他对象提供一种 ... -
【转】 java中yield(),sleep()以及wait()的区别
2012-09-13 22:49 862从操作系统的角度讲,os会维护一个ready queue(就绪 ... -
java 继承类 变量、静态变量、构造函数执行顺序
2012-09-10 16:07 1051包含普通变量、静态变量、构造函数、继承类的执行顺序为: 1、父 ... -
京东2012春笔试编程题
2012-09-10 12:58 01、求给定数组中最大的K个数function array[] ... -
Java实现Stack、Queue、BinaryTree
2012-09-11 10:28 14921、用数组实现Stack: public class MySt ... -
Java中a++和++a的分析
2012-09-18 08:34 2867本人从编译后的代码来看a++和++a的区别: 先看代码1: ... -
华为2012校园上机编程题
2012-09-09 16:04 0/** * 1. 手机号码合法 ... -
2011年9月7日,华为上机题Java实现
2012-09-08 15:58 0第二题: /** * 输入字符串长度len,字符串str, ... -
Java对于Cookie的操作详解
2012-09-18 08:34 8201.设置Cookie Cookie cookie = n ...
相关推荐
在本示例中,我们将深入探讨如何利用POI库来生成Excel中的图表曲线,这对于数据可视化和报告生成非常有用。 1. **Apache POI介绍** Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件。在Java...
在这个描述中,我们可以看到 SpringMVC POI Excel 生成导出是一个完整的过程,从前台写法到 controller 写法再到 service 写法。这个过程涉及到多个技术点,包括 SpringMVC 框架、POI 库、Excel 文件格式等。 标签...
在这个场景中,我们关注的是如何使用POI来创建、读取和操作Excel文档。在Web项目中,这种功能通常用于数据导入导出,报表生成,或者任何需要与用户交换表格数据的场景。 **POI生成Excel** 生成Excel文件主要涉及...
在Android开发中,Apache POI 是一个非常实用的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,如Word文档(.doc)和Excel工作簿(.xlsx或.xls)。这个工具对于需要在Android应用中处理这些文档的...
本文将深入探讨如何使用Java POI生成带有货币格式的Excel文件,这在财务报告和其他需要精确货币显示的应用场景中尤为关键。 ### 一、Java POI简介 Java POI是一个开源的API,用于读写Microsoft Office格式的文件,...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...
在Java开发中,Apache POI 是一个非常流行的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,特别是Excel工作簿。在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel...
在这个场景中,我们关注的是如何使用POI库在Java中生成Excel表格。以下是对标题、描述和标签所涉及知识点的详细说明: 1. **Apache POI 简介** Apache POI 是Java平台上的一个库,它允许开发者读写Microsoft ...
在Java开发中,处理Excel数据是一项常见的任务,尤其是在数据分析、报表生成或批量数据操作的场景下。Apache POI是一个强大的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(....
### POI Excel知识点详解 #### 一、Jakarta POI简介与Apache POI的作用 Jakarta POI 是 Apache POI 的早期项目名称,它提供了一组 API 来处理 Microsoft Office 文件格式,特别是针对 Excel(`.xls` 和 `.xlsx`)...
Java 后台利用 Apache POI 生成 Excel 文档提供前台下载示例 本篇文章主要介绍了 Java 后台利用 Apache POI 生成 Excel 文档提供前台下载示例,非常具有实用价值。下面是文章的详细解释: Apache POI 简介 Apache...
在本文中,我们将深入探讨如何使用Java POI库根据已有的Excel模板生成新的Excel文件。 首先,理解“模板”在Excel中的概念非常重要。模板通常包含预设的格式、样式、公式和数据结构,可以作为创建新文件的基础。在...
本教程将深入探讨如何利用Apache POI来在Excel文件中完美地生成水印。水印通常用于标识文档的所有权或提供额外的安全层,而这里的水印是通过将文字转化为图片再添加到Excel工作表中实现的。 首先,我们需要了解...
在Java中,如果你需要生成或操作Excel文件,尤其是.xlsx格式(这是Excel 2007及以上版本使用的Open XML格式),那么Apache POI库就是首选工具。下面将详细介绍如何使用Java POI库来生成Excel(xlsx)文件。 首先,...
平时工作中用到的一些技术点,拿出来和大家共享一下。 有些功能比较粗糙,如果大家有更加完善的示例或建议,欢迎交流。 1、jpg图片缩略图:ImageUtil ...2、poi创建excel:CDSHdlReport 3、计算表达式求值:Cal
标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...
在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对Excel模板的理解、读取、修改以及最终的保存。 首先,理解模板文件是关键。一个.xlsx模板文件实际上是由一系列XML...
在使用Apache POI生成Excel表时,首先你需要创建一个`Workbook`对象,这代表Excel的工作簿。然后,可以在这个工作簿中添加`Sheet`,对应Excel中的工作表。每个工作表可以添加多个`Row`,行里面再包含`Cell`,即...
java代码调用poi架包, 把数据生成excel文件, 导出到文件
标题中的“使用POI生成EXCEL”指的是使用Apache POI库来创建Microsoft Excel文件的过程。Apache POI是一个开源项目,提供了Java API,可以用来读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx格式)。这个...