• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
掬一束月光
路漫漫其修远兮,吾将上下而求索.
博客园    首页    新随笔    联系   管理    订阅  订阅
Apache POI

Apache POI 用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。

 

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

 

HSSF- 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF - 提供读写Microsoft Word DOC格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF- 提供读Microsoft Outlook格式档案的功能。
 

创建Excel 文档

示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:
 1 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 2 import org.apache.poi.hssf.usermodel.HSSFSheet;
 3 import org.apache.poi.hssf.usermodel.HSSFRow;
 4 import org.apache.poi.hssf.usermodel.HSSFCell;
 5 import java.io.FileOutputStream;
 6 public class CreateXL {
 7  /** Excel 文件要存放的位置,假定在D盘下*/
 8  public static String outputFile="D:\\test.xls";
 9  public static void main(String argv[]){
10   try{
11   // 创建新的Excel 工作簿
12   HSSFWorkbook workbook = new HSSFWorkbook();
13   // 在Excel工作簿中建一工作表,其名为缺省值
14   // 如要新建一名为"效益指标"的工作表,其语句为:
15   // HSSFSheet sheet = workbook.createSheet("sheet1");
16   HSSFSheet sheet = workbook.createSheet();
17   // 在索引0的位置创建行(第一行)
18   HSSFRow row = sheet.createRow((short)0);
19   //在索引0的位置创建单元格(第一列)
20   HSSFCell cell = row.createCell((short) 0);
21   // 定义单元格为字符串类型(Excel-设置单元格格式-数字-文本;不设置默认为“常规”,也可以设置成其他的,具体设置参考相关文档)
22   cell.setCellType(HSSFCell.CELL_TYPE_STRING);
23   // 在单元格中输入一些内容
24   cell.setCellValue("你要输入的内容");
25   // 新建一输出文件流
26   FileOutputStream fOut = new FileOutputStream(outputFile);
27   // 把相应的Excel 工作簿存盘
28   workbook.write(fOut);
29   fOut.flush();
30   // 操作结束,关闭文件
31   fOut.close();
32   System.out.println("文件生成");
33   }catch(Exception e) {
34   System.out.println("已运行 xlCreate() : " + e );
35   }
36  }
37 }

读取Excel文档中的数据

示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。
  示例2程序如下:
 1 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 2  import org.apache.poi.hssf.usermodel.HSSFSheet;
 3  import org.apache.poi.hssf.usermodel.HSSFRow;
 4  import org.apache.poi.hssf.usermodel.HSSFCell;
 5  import java.io.FileInputStream;
 6   
 7  public class ReadXL {
 8   /** Excel文件的存放位置。注意是正斜线*/
 9   public static String fileToBeRead="D:\\test1.xls";
10    
11   public static void main(String argv[]){ 
12    try{
13     // 创建对Excel工作簿文件的引用
14     HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
15     // 创建对工作表的引用。
16     // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
17     HSSFSheet sheet = workbook.getSheet("Sheet1");
18     // 也可用getSheetAt(int index)按索引引用,
19     // 在Excel文档中,第一张工作表的缺省索引是0,
20     // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
21     // 读取左上端单元
22     HSSFRow row = sheet.getRow(0);
23     HSSFCell cell = row.getCell((short)0);
24     // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
25     System.out.println("左上端单元是: " + cell.getStringCellValue()); 
26    }catch(Exception e) {
27     System.out.println("已运行xlRead() : " + e );
28    }
29   }
30  }

 

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:
  1、创建字体,设置其为红色、粗体:
1 HSSFFont font = workbook.createFont();
2 font.setColor(HSSFFont.COLOR_RED);
3 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  2、创建格式
1 HSSFCellStyle cellStyle= workbook.createCellStyle();
2 cellStyle.setFont(font);
  3、应用格式
1 HSSFCell cell = row.createCell((short) 0);
2  
3 cell.setCellStyle(cellStyle);
4 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
5 cell.setCellValue("标题 ");

 

专注Java开发

作者:翟亚豪

邮箱:zyh186214@hotmail.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted on 2017-08-05 10:00  掬一束月光  阅读(206)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3