POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

POI可以操作的文档格式有excel,word,powerpoint等,在此介绍POI操作excel的步骤,关于POI操作其他文档的步骤,大家可以参考其他资料。

首先需要去apache poi的官网上下载poi开发包。我这里使用的版本是3.9

需要引入的两个jar包为:

poi-3.9

poi-ooxml-3.9

代码如下

  1. package com.soukenan.util.filter; 
  2.  
  3. import java.io.FileInputStream; 
  4. import java.io.FileOutputStream; 
  5. import java.io.IOException; 
  6. import java.io.InputStream; 
  7.  
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
  9. import org.apache.poi.ss.usermodel.Cell; 
  10. import org.apache.poi.ss.usermodel.Row; 
  11. import org.apache.poi.ss.usermodel.Sheet; 
  12. import org.apache.poi.ss.usermodel.Workbook; 
  13. import org.apache.poi.ss.usermodel.WorkbookFactory; 
  14.  
  15. public class POITest { 
  16.     //使用POI创建excel工作簿 
  17.     public static void createWorkBook() throws IOException { 
  18.         //创建excel工作簿 
  19.         Workbook wb = new HSSFWorkbook(); 
  20.         //创建第一个sheet(页),命名为 new sheet 
  21.         Sheet sheet = wb.createSheet("new sheet"); 
  22.         //Row 行 
  23.         //Cell 方格 
  24.         // Row 和 Cell 都是从0开始计数的 
  25.          
  26.         // 创建一行,在页sheet上 
  27.         Row row = sheet.createRow((short0); 
  28.         // 在row行上创建一个方格 
  29.         Cell cell = row.createCell(0); 
  30.         //设置方格的显示 
  31.         cell.setCellValue(1); 
  32.  
  33.         // Or do it on one line. 
  34.         row.createCell(1).setCellValue(1.2); 
  35.         row.createCell(2).setCellValue("This is a string 速度反馈链接"); 
  36.         row.createCell(3).setCellValue(true); 
  37.  
  38.         //创建一个文件 命名为workbook.xls 
  39.         FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
  40.         // 把上面创建的工作簿输出到文件中 
  41.         wb.write(fileOut); 
  42.         //关闭输出流 
  43.         fileOut.close(); 
  44.     } 
  45.  
  46.     //使用POI读入excel工作簿文件 
  47.     public static void readWorkBook() throws Exception { 
  48.         // poi读取excel 
  49.         //创建要读入的文件的输入流 
  50.         InputStream inp = new FileInputStream("workbook.xls"); 
  51.          
  52.         //根据上述创建的输入流 创建工作簿对象 
  53.         Workbook wb = WorkbookFactory.create(inp); 
  54.         //得到第一页 sheet 
  55.         //页Sheet是从0开始索引的 
  56.         Sheet sheet = wb.getSheetAt(0); 
  57.         //利用foreach循环 遍历sheet中的所有行 
  58.         for (Row row : sheet) { 
  59.             //遍历row中的所有方格 
  60.             for (Cell cell : row) { 
  61.                 //输出方格中的内容,以空格间隔 
  62.                 System.out.print(cell.toString() + "  "); 
  63.             } 
  64.             //每一个行输出之后换行 
  65.             System.out.println(); 
  66.         } 
  67.         //关闭输入流 
  68.         inp.close(); 
  69.     } 
  70.  
  71.     public static void main(String[] args) throws Exception { 
  72.         // POITest.createWorkBook(); 
  73.         POITest.readWorkBook(); 
  74.     }