Java中导入、导出Excel

一、介绍

  当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。

  目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和JavaExcel

  下面我就分别讲解一下如何使用这两个技术实现导入、导出Excel

二、使用Jakarta POI导入、导出Excel

  Jakarta POI 是一套用于访问微软格式文档的Java API。Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。官方主页,API文档

2.1 环境配置  2.1.1下载jar

  官方下载:这里可以下载到它的最新版本和文档,目前最新版本是3.7,这里使用比较稳定的3.6版。

  2.1.2加入jar包

  将根目录下的poi-3.6-20091214.jar和Lib目录下三个通用包 commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar拷贝到项目的Lib下

2.2 Jakarta POI HSSF API组件

  HSSF(用于操作Excel的组件)提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象,样式和格式,还有辅助操作。有以下几种对象:

常用组件:

HSSFWorkbook excel的文档对象

HSSFSheet excel的表单

HSSFRow excel的行

HSSFCell excel的格子单元

HSSFFont excel字体

HSSFDataFormat 日期格式

HSSFHeader sheet头

HSSFFooter sheet尾(只有打印的时候才能看到效果)

样式:

HSSFCellStyle cell样式

辅助操作包括:

HSSFDateUtil 日期

HSSFPrintSetup 打印

HSSFErrorConstants 错误信息表

2.3 基本操作步骤

  首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。

  基本操作步骤:

1、用HSSFWorkbook打开或者创建“Excel文件对象”

2、用HSSFWorkbook对象返回或者创建Sheet对象

3、用Sheet对象返回行对象,用行对象得到Cell对象

4、对Cell对象读写。

  下面来看一个动态生成Excel文件的例子:

//创建HSSFWorkbook对象HSSFWorkbook wb = new HSSFWorkbook();//创建HSSFSheet对象HSSFSheet sheet = wb.createSheet("sheet0");//创建HSSFRow对象HSSFRow row = sheet.createRow(0);//创建HSSFCell对象HSSFCell cell=row.createCell(0);//设置单元格的值cell.setCellValue("单元格中的中文");//输出Excel文件FileOutputStream output=new FileOutputStream("d:\\workbook.xls");wkb.write(output);output.flush();

  HSSF读取文件同样还是使用这几个对象,只是把相应的createXXX方法变成了getXXX方法即可。可见只要理解了其中原理,不管是读还是写亦或是特定格式都可以轻松实现,正所谓知其然更要知其所以然。

2.4 导出Excel应用实例

  在2.3中我们寥寥几行代码实际上就已经就是实现了导出Excel一个简单示例,下面我们在看如何实现导出如图所示的Excel表格?

  代码如下:(实际开发中应封装到业务层组件中,然后在控制层中调用。这里直接写在控制层组件,如Servlet的doGet/doPost方法或Struts框架的execute方法中)

当明知不可挽回,唯一补偿的方法就是怀念,

Java中导入、导出Excel

相关文章:

你感兴趣的文章:

标签云: