POI中文帮助文档Word文件下载.docx
- 文档编号:13981901
- 上传时间:2022-10-16
- 格式:DOCX
- 页数:20
- 大小:102.50KB
POI中文帮助文档Word文件下载.docx
《POI中文帮助文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《POI中文帮助文档Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
说明
POIFS(POIFileSystem)
POIFS是POI项目中最早的最基础的一个模块,是Java到OLE2CompoundDocumentFormat的接口,支持读写功能,所有的其他项目都依赖与该项目。
HSSF(HorribleSpreadsheetFormat)
HSSF是Java到MicrosoftExcel97(-2002)文件的接口,支持读写功能
HWPF(HorribleWordProcessingFormat)
HWPF是Java到MicrosoftWord97文件的接口,支持读写功能,但目前该模块还处于刚开始开发阶段,只能实现一些简单文件的操作,在后续版本中,会提供更强大的支持
HPSF(HorriblePropertySetFormat)
HPSF是Java到OLE2CompoundDocumentFormat文件的属性设置的接口,属性设置通常用来设置文档的属性(标题,作者,最后修改日期等),还可以设置用户定义的属性。
HPSF支持读写功能,当前发布版本中直支持读功能。
7.3.1
对Excel的处理类
下面通过HSSF提供的接口对Excel文件经行处理。
首先需要下载POI的包,可以到apache的官方网站下载,地址为:
http:
//apache.justdn.org/jakarta/poi/,本书采用的是poi-2.5.1-final-20040804.jar,读者可以下载当前的稳定版本。
把下载的包按照前面介绍的方式加入BuildPath,然后新建一个ch7.poi包,并创建一个ExcelReader类。
ExcelReader类可以读取一个XLS文件,然后将其内容逐行提取出来,写入文本文件。
其代码如下。
代码7.6
publicclassExcelReader{
//创建文件输入流
privateBufferedReaderreader=null;
//文件类型
privateStringfiletype;
//文件二进制输入流
privateInputStreamis=null;
//当前的Sheet
privateintcurrSheet;
//当前位置
privateintcurrPosition;
//Sheet数量
privateintnumOfSheets;
//HSSFWorkbook
HSSFWorkbookworkbook=null;
//设置Cell之间以空格分割
privatestaticStringEXCEL_LINE_DELIMITER="
"
;
//设置最大列数
privatestaticintMAX_EXCEL_COLUMNS=64;
//构造函数创建一个ExcelReader
publicExcelReader(Stringinputfile)throwsIOException,Exception{
//判断参数是否为空或没有意义
if(inputfile==null||inputfile.trim().equals("
"
)){
thrownewIOException("
noinputfilespecified"
);
}
//取得文件名的后缀名赋值给filetype
this.filetype=inputfile.substring(inputfile.lastIndexOf("
."
)+1);
//设置开始行为0
currPosition=0;
//设置当前位置为0
currSheet=0;
is=newFileInputStream(inputfile);
//判断文件格式
if(filetype.equalsIgnoreCase("
txt"
//如果是txt则直接创建BufferedReader读取
reader=newBufferedReader(newInputStreamReader(is));
elseif(filetype.equalsIgnoreCase("
xls"
//如果是Excel文件则创建HSSFWorkbook读取
workbook=newHSSFWorkbook(is);
//设置Sheet数
numOfSheets=workbook.getNumberOfSheets();
else{
thrownewException("
FileTypeNotSupported"
}
//函数readLine读取文件的一行
publicStringreadLine()throwsIOException{
//如果是txt文件则通过reader读取
Stringstr=reader.readLine();
//空行则略去,直接读取下一行
while(str.trim().equals("
str=reader.readLine();
returnstr;
//如果是XLS文件则通过POI提供的API读取文件
elseif(filetype.equalsIgnoreCase("
//根据currSheet值获得当前的sheet
HSSFSheetsheet=workbook.getSheetAt(currSheet);
//判断当前行是否到但前Sheet的结尾
if(currPosition>
sheet.getLastRowNum()){
//当前行位置清零
//判断是否还有Sheet
while(currSheet!
=numOfSheets-1){
//得到下一张Sheet
sheet=workbook.getSheetAt(currSheet+1);
//当前行数是否已经到达文件末尾
if(currPosition==sheet.getLastRowNum()){
//当前Sheet指向下一张Sheet
currSheet++;
continue;
}else{
//获取当前行数
introw=currPosition;
currPosition++;
//读取当前行数据
returngetLine(sheet,row);
returnnull;
//函数getLine返回Sheet的一行数据
privateStringgetLine(HSSFSheetsheet,introw){
//根据行数取得Sheet的一行
HSSFRowrowline=sheet.getRow(row);
//创建字符创缓冲区
StringBufferbuffer=newStringBuffer();
//获取当前行的列数
intfilledColumns=rowline.getLastCellNum();
HSSFCellcell=null;
//循环遍历所有列
for(inti=0;
i<
filledColumns;
i++){
//取得当前Cell
cell=rowline.getCell((short)i);
Stringcellvalue=null;
if(cell!
=null){
//判断当前Cell的Type
switch(cell.getCellType()){
//如果当前Cell的Type为NUMERIC
caseHSSFCell.CELL_TYPE_NUMERIC:
{
//判断当前的cell是否为Date
if(HSSFDateUtil.isCellDateFormatted(cell)){
//如果是Date类型则,取得该Cell的Date值
Datedate=cel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POI 中文 帮助 文档