Apache POI:Java程序读写Microsoft Office格式文档-1
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应用实例:
首先需要从阿帕奇官网下载poi的jar文件; 配置完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 );
}
}
}
页:
[1]