- 浏览: 435446 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1251maven构建子模块时报错,cmd如下: mvn arch ... -
数字绕圈算法 JS 实现
2014-06-25 01:26 1428这是一道某公司的算法题,我们姑且称之为“数字绕圈算法”。 ... -
VS2012警告未能加载包“Visual C++ package”
2014-02-19 15:33 2469安装了windows更新后就出现VS2012无法打开项目的问 ... -
Apktool 用法
2013-07-23 10:21 1294最近研究cocos2dxhtml5这块,由于是跨平台的,所以 ... -
文本文件和二进制文件的区别
2010-05-20 10:30 1663From: http://blog.csdn.net/s ... -
org.codehaus.classworlds.NoSuchRealmException: plexus.core at org.codeha
2010-02-27 23:25 2518很简单,直接找到maven_home\conf\setting ... -
HTTPClient PostMethod 乱码问题
2010-01-14 12:03 8029虽然这是篇老文,不过还是忍不住转过来看看。 类别标签: ... -
Session实现原理
2009-12-11 09:26 1325HTTP协议 ( http://www.w ... -
HashTable和HashMap的区别
2009-12-02 14:47 1002HashTable的应用非常广泛,HashMap是新框架中用来 ... -
JAVA内存溢出解析
2009-11-06 19:46 2418原因有很多种,比如: 1.数据量过于庞大;死循环 ; ... -
FCK Editor 不能显示问题
2009-06-24 16:03 3392匪夷所思的问题: 页面中使用了FCK,比如这么引用标记 ... -
用ChartDirector 画饼
2009-06-22 10:18 2192ChartDirector是一款简单使用的图形报表工具,足以应 ... -
怎样打开端口
2009-06-07 16:47 2701每一项服务都对应相应 ... -
org.slf4j.impl.StaticLoggerBinder.SINGLETON
2009-06-05 16:03 12212tried to access field org.slf4j ... -
软件工程师不可不知的10个概念
2009-02-05 15:45 953出色的软件工程师善用 ... -
如何提高数据库查询速度
2009-02-05 15:37 17171、用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次 ... -
Log4j和commons-logging
2009-02-05 13:28 1980一 :为什么同时使用com ... -
为什么使用Serializable(序列化)
2009-02-04 17:30 1227经常看到有些类调用了Serializable接口,而有 ... -
Perl 内置变量
2009-02-04 13:55 1137$- 当前页可打印的行数,属于perl格式系统的一部分 $! ... -
什么是 RSS
2009-02-01 13:25 1307什么是 RSS? RSS是一种网页内容联合格式(web ...
相关推荐
Apache POI 是一个流行的 Java 库,用于读取和写入 Microsoft Office 文件格式,特别是 Excel。在处理大量数据时,由于单个 Excel 工作表(sheet)的限制,我们可能需要将数据分拆到多个 sheet 或多个 Excel 文件中...
在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...
1. **Apache POI**: Apache POI 是一个开源项目,它允许开发人员使用Java读取、写入和修改Microsoft Office格式的文件,如Word (DOC, DOCX), Excel (XLS, XLSX), PowerPoint (PPT, PPTX)等。在本例中,主要关注的是...
1.本动态导入导出Excel工程导入Eclipse即可用行,支持所有版本的Excel导入导出。...2.程序使用Struts2+POI+SQLSever(SSH即Struts2+Hibernate+Spring)实现Excel动态数据导入和导出,压缩包内含程序源码文件。
本实例提供的"exportExcel"可能包含了一个完整的示例代码,包括Struts2的动作类、Spring配置文件、iBatis的Mapper接口和XML映射文件,以及使用POI实现导出功能的具体Java类。通过学习和理解这些代码,开发者可以快速...
在Java开发中,Apache POI 是一个非常流行的库,它允许开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel(XLS和XLSX格式)。在"POI EXCEL 导入导出工具设计 SQL2000"这个项目中,你将学习到如何利用...
1. **解析Excel文件**:使用`org.apache.poi.ss.usermodel.WorkbookFactory`类的静态方法`create()`,传入`InputStream`对象,即可创建一个Workbook实例,代表整个Excel文件。然后,你可以通过`getSheetAt()`或`...
标题中的“POI +反射导出数据库到excel”是指使用Java的Apache POI库和反射机制,将数据库中的数据高效地导出到Excel文件中。Apache POI是一个流行的开源库,它允许开发者读写Microsoft Office格式的文件,包括Excel...
总的来说,Java通过Apache POI库导出Excel是一个实用且功能强大的功能,可以帮助开发者轻松地将数据转化为用户友好的Excel文件。在开发过程中,不断学习和理解POI的高级特性和最佳实践,将使你的代码更加高效和健壮...
2. **创建Excel工作簿**:使用Apache POI创建一个新的Workbook对象,它是Excel文件的基础。 3. **添加工作表**:向Workbook中添加一个Sheet对象,相当于Excel的表格页。 4. **填充数据**:为每个数据库记录创建一...
然后,在`POIExcel`类中,创建一个新的`HSSFWorkbook`实例,并向其中添加一个工作表。遍历查询结果,将每条记录添加到工作表的行中。 **关键代码示例:** ```java // POIExcel.java public void exportExcel...
1. 加载Excel文件:使用`WorkbookFactory.create()`方法创建一个`Workbook`实例。 2. 获取工作表:通过`Workbook`对象的`getSheetAt()`或`createSheet()`方法获取或创建工作表。 3. 遍历行和单元格:使用`Sheet`对象...
5. Apache POI使用:使用Apache POI,开发者可以创建一个新的Workbook对象代表Excel文件,然后添加Sheet对象代表工作表,再在Sheet中添加Row和Cell来填充数据。对于复杂的格式设置,如合并单元格、设置字体样式、...
在Java Web开发中,"Excel poi java jsp"是一个常见的技术组合,用于处理Excel文件的导入和导出功能。此组合利用Apache POI库来操作Excel文件,通过Servlet作为服务器端处理逻辑,而JSP则作为用户界面进行交互。下面...
这个“导出excel实例与资料.zip”压缩包包含了一个完整的Java实现导出Excel的示例,以及相关的使用案例和问题解决经验。 首先,让我们探讨Java中导出Excel的基本原理。在Java中,最常用的库是Apache POI,这是一个...
3. **操作Excel文件**:如果使用Microsoft Office Interop,需创建Excel Application实例,创建Workbook并添加Worksheet。 ```cpp using namespace Microsoft::Office::Interop::Excel; Application^ excelApp = ...
总的来说,这个压缩包提供的内容可能包括一个Android项目,演示了如何从SQLite数据库读取数据并使用特定库(可能是简化版的Apache POI或替代库)将数据导出为Excel文件。开发者可以参考这个项目学习如何实现这样的...
在这个项目中,“struts2_spring_ibatis根据模板文件导出Excel”是利用这三大框架实现了一个功能,即根据预设的模板文件生成并导出Excel电子表格。 首先,Struts2是基于Model-View-Controller(MVC)架构的Web应用...
Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Word、Excel 和 PowerPoint。在本主题中,我们将重点关注使用 POI 库生成 Excel 文件以及与数据连接池的整合。 首先,让我们深入了解...
在读取Excel文件时,我们首先需要创建一个POIFSFileSystem对象,然后使用HSSFWorkbook来读取Excel文件。接着,我们可以循环遍历Excel文件中的每个工作表、每行和每列,提取其中的数据。 在将数据导入到数据库中时,...