- 浏览: 427511 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (167)
- 技术文章 (26)
- HTML & XHTML & XML (16)
- javascript (11)
- ajax (1)
- css (8)
- spring (1)
- hibernate (8)
- struts (4)
- SEO&SEM (6)
- php (13)
- MySQL (11)
- Oracle (1)
- 学习笔记 (26)
- 技术文档下载 (6)
- 笔随心动 (16)
- 奇闻天下 (7)
- 其他文档 (10)
- Unity3d (1)
- memcached (1)
- PHP 浏览器版本 os 操作系统版本 (1)
- maven (1)
- Android (1)
- php是 (1)
- lower_case_table_names=1 (1)
最新评论
-
18335864773:
目前 用pageoffice组件的比较多.POI对Office ...
Poi的一个实例——用SQL动态导出Excel文件 -
afreon:
http://blog.yoodb.com/yoodb/art ...
org.hibernate.WrongClassException 错误解决 -
springaop_springmvc:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven Pom.xml 元素详解 -
影非弦:
显示的是A server error has occurred ...
DWR 弹出Error 解决 -
xu3352:
非常不错,:idea: ,感谢楼主
CSS3 中文文档
很久以前。。。自己写的一个通过SQL语句导出Excel文件下载的程序,其中用到了POI库。
程序并不完整比如需要传入一个Connection,总的来说还是比较值得回忆的吧。
By the way,我并没有写测试的main函数。
package com.yxhc.util.execl ; import java.io.IOException ; import java.io.OutputStream ; import java.sql.Connection ; import java.sql.PreparedStatement ; import java.sql.ResultSet ; import java.sql.ResultSetMetaData ; import java.sql.SQLException ; import java.util.Date ; import javax.servlet.http.HttpServletResponse ; import org.apache.commons.logging.Log ; import org.apache.commons.logging.LogFactory ; import org.apache.poi.hssf.usermodel.HSSFCell ; import org.apache.poi.hssf.usermodel.HSSFCellStyle ; import org.apache.poi.hssf.usermodel.HSSFRow ; import org.apache.poi.hssf.usermodel.HSSFSheet ; import org.apache.poi.hssf.usermodel.HSSFWorkbook ; import com.yxhc.util.dbUtil.ConnectionUtil ; /** * @author Great nomandia */ public class ExcelUtil { private static Log log = LogFactory.getLog( ExcelUtil.class ) ; private static String shtName = "" ; private static String[] cNames = null ; private static String[] cLabels = null ; private static int rpp = 200 ; private static HSSFCellStyle style = null ; /** * 通过给定的Sql导出Excel文件到Response输出流,需要指定Connection * @param response HttpServletResponse Response * @param conn Connection 指定的数据库连接 * @param sqlStr String 查询的Sql语句 * @param sheetName String 导出的Excel Sheet名称 * @param columnNames String[] 导出的 Excel 列名称 * @param rowPerPage int 每一个Sheet页的行数 * @throws SQLException */ public static void export( HttpServletResponse response , Connection conn , String sqlStr , String sheetName , String columnNames[] , int rowPerPage ) throws SQLException { PreparedStatement ps = null ; ResultSet rs = null ; ps = conn.prepareStatement( sqlStr ) ; rs = ps.executeQuery() ; ResultSetMetaData rsmd = rs.getMetaData() ; if ( rowPerPage <= 10000 && rowPerPage >= 1 ) { rpp = rowPerPage ; } if ( !"".equals( sheetName ) && null != sheetName ) { shtName = sheetName ; } else { shtName = rsmd.getTableName( 0 ) ; } cNames = getColumnNames( rsmd ) ; if ( null != columnNames ) { cLabels = columnNames ; //compare( columnNames ) ; } else { cLabels = cNames ; } HSSFWorkbook wb = new HSSFWorkbook() ; style = wb.createCellStyle() ; style.setAlignment( HSSFCellStyle.ALIGN_CENTER ) ; HSSFSheet sheet = createSheet( wb , 1 ) ; setSheetColumnTitle( sheet ) ; int rowCnt = 0 ; int sheetNum = 2 ; while ( rs.next() ) { if ( rowCnt == rpp ) { sheet = createSheet( wb , sheetNum ) ; setSheetColumnTitle( sheet ) ; rowCnt = 0 ; sheetNum++ ; } HSSFRow row = sheet.createRow( rowCnt + 1 ) ; for ( int i = 0 ; i < cNames.length ; i++ ) { HSSFCell cell = row.createCell( ( short ) i ) ; cell.setEncoding( HSSFCell.ENCODING_UTF_16 ) ; String val = rs.getString( cNames[ i ] ) ; if ( null == val ) { val = "" ; } cell.setCellValue( val.toUpperCase() ) ; } rowCnt++ ; } try { OutputStream os = response.getOutputStream() ; response.reset() ; response.setContentType( "application/vnd.ms-excel" ) ; response.setHeader( "Content-disposition" , "attachment; filename=" + getFileName( shtName ) ) ; wb.write( os ) ; if ( conn != null ) { conn.close() ; } } catch ( IOException ex ) { log.info( "Export Excel file error ! " + ex.getMessage() ) ; } } /** * 设置Sheet页的列属性 * @param sht HSSFSheet */ private static void setSheetColumnTitle( HSSFSheet sht ) { HSSFRow row = sht.createRow( 0 ) ; for ( int i = 0 ; i < cLabels.length ; i++ ) { HSSFCell cell = row.createCell( ( short ) ( i ) ) ; cell.setEncoding( HSSFCell.ENCODING_COMPRESSED_UNICODE) ; cell.setCellValue( cLabels[ i ] ) ; cell.setCellStyle( style ) ; } } /** * 获得源数据中的列名称 * @param rsmd ResultSetMetaData * @return String[] */ private static String[] getColumnNames( ResultSetMetaData rsmd ) { try { StringBuffer result = new StringBuffer("") ; for ( int i = 1 ; i <= rsmd.getColumnCount() ; i++ ) { result.append(rsmd.getColumnLabel( i )).append(","); } if ( result.length()>0 ) { return result.substring( 0 , result.length() - 1 ).toString().split( "," ) ; } } catch ( Exception e ) { return null ; } return null ; } /** * 创建一个Sheet页并返回该对象 * @param wb HSSFWorkbook * @param seq int * @return HSSFSheet */ private static HSSFSheet createSheet( HSSFWorkbook wb , int seq ) { int sup = seq * rpp ; int sub = ( seq - 1 ) * rpp + 1 ; if ( sub < 1 ) { sub = 1 ; } return wb.createSheet( shtName + "(" + sub + "-" + sup + ")" ) ; } /** * 获得导出的文件全名 * @param tableName String * @return String */ private static String getFileName( String tableName ) { return tableName + new Date().getTime() + ".xls" ; } }
评论
1 楼
18335864773
2017-11-29
目前 用pageoffice组件的比较多.
POI对Office2003和Office2007的docx、xlsx文件用的是接口完全不兼容的两组对象,pageoffice 能支持各个版本的office .PageOffice提供Word、Excel的简化对象接口,功能齐全,读写文档的调用代码完全统一,并且调用代码比POI、JXL简单很多。
POI对Office2003和Office2007的docx、xlsx文件用的是接口完全不兼容的两组对象,pageoffice 能支持各个版本的office .PageOffice提供Word、Excel的简化对象接口,功能齐全,读写文档的调用代码完全统一,并且调用代码比POI、JXL简单很多。
发表评论
-
Cannot create instance of interface org.apache.maven.artifact.repository.Artifac
2016-02-26 18:09 1197maven构建子模块时报错,cmd如下: mvn arch ... -
数字绕圈算法 JS 实现
2014-06-25 01:26 1365这是一道某公司的算法题,我们姑且称之为“数字绕圈算法”。 ... -
VS2012警告未能加载包“Visual C++ package”
2014-02-19 15:33 2396安装了windows更新后就出现VS2012无法打开项目的问 ... -
Apktool 用法
2013-07-23 10:21 1238最近研究cocos2dxhtml5这块,由于是跨平台的,所以 ... -
文本文件和二进制文件的区别
2010-05-20 10:30 1620From: http://blog.csdn.net/s ... -
org.codehaus.classworlds.NoSuchRealmException: plexus.core at org.codeha
2010-02-27 23:25 2428很简单,直接找到maven_home\conf\setting ... -
HTTPClient PostMethod 乱码问题
2010-01-14 12:03 7976虽然这是篇老文,不过还是忍不住转过来看看。 类别标签: ... -
Session实现原理
2009-12-11 09:26 1262HTTP协议 ( http://www.w ... -
HashTable和HashMap的区别
2009-12-02 14:47 960HashTable的应用非常广泛,HashMap是新框架中用来 ... -
JAVA内存溢出解析
2009-11-06 19:46 2361原因有很多种,比如: 1.数据量过于庞大;死循环 ; ... -
FCK Editor 不能显示问题
2009-06-24 16:03 3354匪夷所思的问题: 页面中使用了FCK,比如这么引用标记 ... -
用ChartDirector 画饼
2009-06-22 10:18 2152ChartDirector是一款简单使用的图形报表工具,足以应 ... -
怎样打开端口
2009-06-07 16:47 2666每一项服务都对应相应 ... -
org.slf4j.impl.StaticLoggerBinder.SINGLETON
2009-06-05 16:03 12138tried to access field org.slf4j ... -
软件工程师不可不知的10个概念
2009-02-05 15:45 916出色的软件工程师善用 ... -
如何提高数据库查询速度
2009-02-05 15:37 16741、用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次 ... -
Log4j和commons-logging
2009-02-05 13:28 1937一 :为什么同时使用com ... -
为什么使用Serializable(序列化)
2009-02-04 17:30 1179经常看到有些类调用了Serializable接口,而有 ... -
Perl 内置变量
2009-02-04 13:55 1082$- 当前页可打印的行数,属于perl格式系统的一部分 $! ... -
什么是 RSS
2009-02-01 13:25 1241什么是 RSS? RSS是一种网页内容联合格式(web ...
相关推荐
可以运行的POI导出Excel文件实例,里面有两种方法,一个是Servlet,一个是main
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
解释:该方法相当于新建了一个excel文件,HSSFWorkbook : excel的文档对象。 2.//创建第一个sheet(页),命名为 page1 Sheet sheet = wb.createSheet("page1"); 解释:该方法相当于在excel文件里新建了一个工作页...
导出 EXCEL 的一种方式,里面有方法的功能说明
文件包含了 1.POI导入导出的工具类; 2.图片URL导出成图片文件; 3.导出excel和图片压缩包格式文件。 如果下载后有任何问题,可以联系我哦!
基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip...
使用poi方式导出excel,支持将多个工作簿合成一个Excel进行导出
对大数据量的导出excel,用多线程,用倒数计数器对文件进行生成,使用poi,可以支持大数据量的生成,项目中使用的poi是3.1的,上传的是4.1的。
poi 导出excel实例 下载 按照步骤去做 简单实例 技术牛人可忽略
POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI...
POI使用excel模板循环输出行到文件并导出的一个小例子
poi基于模板导出excel,poi基于模板导出excelpoi,基于模板导出excel
Apache POI导入和导出Excel文件
使用poi从数据库导出excel表的示例
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
利用POI实现Excel的导入和导出实例的实现,外加poi的全部jar包
Poi导出Excel工具类 支持大数据量 多sheet页方式 已经封装好,直接拿来调用里面的方法传入参数就行 很简单
poi_excel导入导出各种excel文件实例
poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,
POI 3.1读取和导出Excel文件实例,对java开发人员有很大的帮助