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表格的简单例子演示:
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import java.io.FileInputStream;
- import java .io.FileOutputStream;
- public class CreateExcel
- {
- /* Excel 文件要存放的位置:D盘*/
- public static String outputFile="D:\\test.xls";
- public static void main(String argv[])
- {
- readSheet();
- }
- //演示如何利用Jakarta POI API 创建Excel 文档。
- public static void createSheet()
- {
- try{
- // 创建新的Excel 工作簿
- HSSFWorkbook workbook = new HSSFWorkbook();
- //如要新建一名为"效益指标"的工作表,其语句为:
- HSSFSheet sheet = workbook.createSheet("效益指标");
- // 在Excel工作簿中建一工作表,其名为缺省值,
- //HSSFSheet sheet = workbook.createSheet();
- // 在索引0的位置创建行(最顶端的行)
- HSSFRow row = sheet.createRow(0);
- //在索引0的位置创建单元格(左上端)
- HSSFCell cell =row.createCell(0);
- // 定义单元格为字符串类型
- cell.setCellType(HSSFCell.CELL_TYPE_STRING);
- // 在单元格中输入一些内容
- cell.setCellValue("增加值");
- // 新建一输出文件流
- FileOutputStream fOut = new FileOutputStream(outputFile);
- // 把相应的Excel 工作簿存盘
- workbook.write(fOut);
- fOut.flush();
- // 操作结束,关闭文件
- fOut.close();
- System.out.println("生成文件...........");
- }
- catch(Exception e)
- {
- System.out.println("!!!!!!" + e.getMessage());
- }
- }
- //演示如何读取Excel文档中的数据
- public static void readSheet()
- {
- try{
- // 创建对Excel工作簿文件的引用
- HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(outputFile));
- // 创建对工作表的引用。
- // 本例是按名引用
- HSSFSheet sheet = workbook.getSheet("效益指标");
- // 也可用getSheetAt(int index)按索引引用,
- // 在Excel文档中,第一张工作表的缺省索引是0,
- // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
- // 读取左上端单元
- HSSFRow row = sheet.getRow(0);
- HSSFCell cell = row.getCell(0);
- // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
- System.out.println("左上端单元是: " + cell.getStringCellValue());
- }
- catch(Exception e)
- {
- System.out.println("!!!! " + e );
- }
- }
- }