Apache POI:Java程序读写Microsoft Office格式文档——简单完整实例讲解

1.Apache POI简介

            Apache POI是Apache软件基金会的开放源码函式库,官方名称为:Apache POI - the Java API for Microsoft Documents,POI提供API给Java程序对Microsoft Office格式文档读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 POI 的功能。

 

2.Apache POI结构

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格式档案的功能。

3.Apache POI应用实例:

<1>首先需要从阿帕奇官网下载poi的jar文件;

<2>配置完jar文件之后,就可以运行下面的实例了

       这里仅用读写Excel表格的简单例子演示:

 

[java]  view plain  copy
 
  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.   
  6. import java.io.FileInputStream;  
  7. import java .io.FileOutputStream;  
  8. public class CreateExcel  
  9. {  
  10.     /* Excel 文件要存放的位置:D盘*/  
  11.     public static String outputFile="D:\\test.xls";  
  12.     public static void main(String argv[])  
  13.     {  
  14.         readSheet();  
  15.     }  
  16.     //演示如何利用Jakarta POI API 创建Excel 文档。  
  17.     public static void createSheet()  
  18.     {  
  19.         try{  
  20.             // 创建新的Excel 工作簿  
  21.             HSSFWorkbook workbook = new HSSFWorkbook();  
  22.             //如要新建一名为"效益指标"的工作表,其语句为:  
  23.             HSSFSheet sheet = workbook.createSheet("效益指标");  
  24.             // 在Excel工作簿中建一工作表,其名为缺省值,  
  25.             //HSSFSheet sheet = workbook.createSheet();  
  26.               
  27.             // 在索引0的位置创建行(最顶端的行)  
  28.             HSSFRow row = sheet.createRow(0);  
  29.             //在索引0的位置创建单元格(左上端)  
  30.              HSSFCell cell =row.createCell(0);  
  31.             // 定义单元格为字符串类型  
  32.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  33.             // 在单元格中输入一些内容  
  34.             cell.setCellValue("增加值");  
  35.               
  36.               
  37.             // 新建一输出文件流  
  38.             FileOutputStream fOut = new FileOutputStream(outputFile);  
  39.             // 把相应的Excel 工作簿存盘  
  40.             workbook.write(fOut);  
  41.             fOut.flush();  
  42.               
  43.             // 操作结束,关闭文件  
  44.             fOut.close();  
  45.             System.out.println("生成文件...........");  
  46.         }  
  47.         catch(Exception e)  
  48.         {  
  49.             System.out.println("!!!!!!" + e.getMessage());  
  50.         }  
  51.     }  
  52.       
  53.     //演示如何读取Excel文档中的数据  
  54.     public static void readSheet()  
  55.     {  
  56.         try{  
  57.             // 创建对Excel工作簿文件的引用  
  58.             HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(outputFile));  
  59.             // 创建对工作表的引用。  
  60.             // 本例是按名引用  
  61.             HSSFSheet sheet = workbook.getSheet("效益指标");  
  62.             // 也可用getSheetAt(int index)按索引引用,  
  63.             // 在Excel文档中,第一张工作表的缺省索引是0,  
  64.             // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);  
  65.             // 读取左上端单元  
  66.             HSSFRow row = sheet.getRow(0);  
  67.             HSSFCell cell = row.getCell(0);  
  68.             // 输出单元内容,cell.getStringCellValue()就是取所在单元的值  
  69.             System.out.println("左上端单元是: " + cell.getStringCellValue());  
  70.         }  
  71.         catch(Exception e)   
  72.         {  
  73.             System.out.println("!!!! " + e );  
  74.         }  
  75.     }     
  76. }  

 

猜你喜欢

转载自ctwen.iteye.com/blog/2359363