Java操作Excel之POI(一):创建第一个Excel

来源:互联网 发布:福建网络电视台投诉 编辑:程序博客网 时间:2024/06/04 01:16

本系列博客将深度分析POI,为JavaWeb制作企业级报表提供便利


Java操作Excel之POI(一):创建第一个Excel

文档结构

  1. POI简介
  2. 创建第一个Excel

一、POI简介

1、概述

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。

2、POI框架类库

  • HSSF - 提供读写Microsoft Excel格式档案的功能。
  • XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
  • HWPF - 提供读写Microsoft Word格式档案的功能。
  • HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
  • HDGF - 提供读写Microsoft Visio格式档案的功能。

二、创建第一个Excel

1、明确1个Excel文件需要的对象

(1)一个excle表格

HSSFWorkbook wb = new HSSFWorkbook();XSSFWorkbook xb = new XSSFWorkbook();

(2)一个工作表格(sheet)

Sheet sheet = wb.getSheetAt(0);

(3)一行(ROW)

HSSFRow row1 = sheet.createRow(0);

(4)一个单元格(cell)

Cell cell = cells.next();

(5)单元格格式(cellstyle)

HSSFCellStyle style4 = wb.createCellStyle();

(6)单元格内容格式(HSSFDataFormat)

HSSFDataFormat format= wb.createDataFormat();

2、一个例子说明POI原理

某管理员要查某层楼有多少人叫什么名字?

  1. 首先要明确大楼在那里(找到对应的文件)
  2. 其次要明确是在第几单元(找到对应的sheet)
  3. 在找到第几层楼(对应的row)
  4. 敲门问住户户主先生/小姐的姓名(cell)
public class TestA {      public static void main(String args[]) throws Exception {          //找到大楼的位置          FileInputStream input = new FileInputStream("d:\\employee.xls");          //告诉管理员          POIFSFileSystem f = new POIFSFileSystem(input);          //走到大楼楼下          HSSFWorkbook wb = new HSSFWorkbook(f);          //确认自己走到第几单元          HSSFSheet sheet = wb.getSheetAt(0);          //看一看有没有楼层          Iterator rows = sheet.rowIterator();          while (rows.hasNext()) {              //如果有我们一层层问              HSSFRow row = (HSSFRow)rows.next();              Iterator cells = row.cellIterator();              //如果有人开门              while(cells.hasNext()) {                  //我们一户一户的登记                  HSSFCell cell = (HSSFCell) cells.next();                  //是先生还是小姐(对应的数据类型)                  int cellType = cell.getCellType();                  System.out.print(getValue(cell,cellType));              }              System.out.println("记录完毕");          }      }  
原创粉丝点击