Java 使用POI操纵Excel 2007

hanwentan 2011-10-25

这是两个例程,是演示如何使用Java读取和写入Excel2007文件。注释里有比较详细的开发环境说明,你只要在Eclipse里粘过去不可以运行了。

例程使用的是POI-XSSF,而不是HSSF,这个地方要注意一下,不过他们的用法很类似,如果你看明白一个了,应该很容易理解另一个

非常感谢大家能阅读我的文章。如果还有什么问题,请大家留言

http://www.gjrencai.com/newsShow.asp?dataID=1485

并保留作者姓名和本句话,谢谢合作

/******************************************************************************

*演示使用POI写入Excel2007

*

*关键字:JavaExcelPOIPOI-HSSFPOI-XSSF

*

gjrencai.com

*注释:http://www.gjrencai.com/newsShow.asp?dataID=1485

*开发环境详细说明:

*1、javaversion"1.6.0_14"

*2、Java(TM)SERuntimeEnvironment(build1.6.0_14-b08)

*3、JavaHotSpot(TM)ClientVM(build14.0-b16,mixedmode,sharing)

*4、MicrosoftExcel2007

*5、WindowsXPHomeEditionServicePack3

*6、ApachePOI3.5

*

*****************************************************************************/

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importorg.apache.poi.ss.usermodel.Cell;

importorg.apache.poi.ss.usermodel.CreationHelper;

importorg.apache.poi.ss.usermodel.Row;

importorg.apache.poi.ss.usermodel.Sheet;

importorg.apache.poi.ss.usermodel.Workbook;

importorg.apache.poi.xssf.usermodel.XSSFWorkbook;

publicclassPOIExcelWriteDemo1

{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args)

{

//TODOAuto-generatedmethodstub

try

{

Workbookwb=newXSSFWorkbook();

CreationHelpercreateHelper=wb.getCreationHelper();

Sheetsheet=wb.createSheet("这里是第一页");

//创建行

Rowrow=sheet.createRow((short)0);

//创建单元格,方法1

Cellcell=row.createCell(0);

cell.setCellValue(1);

//直接创建单元格,方法2

row.createCell(1).setCellValue(1.2);

row.createCell(2)

.setCellValue(createHelper.createRichTextString("大家好,我是高宏伟"));

row.createCell(3).setCellValue(

createHelper.createRichTextString("QQ:21807822"));

row.createCell(4).setCellValue(true);

//写入文件

FileOutputStreamfileOut;

fileOut=newFileOutputStream("gaohw.xlsx");

wb.write(fileOut);

fileOut.close();

System.out.println("写入成功,运行结束!");

}catch(FileNotFoundExceptione)

{

e.printStackTrace();

}catch(IOExceptione)

{

e.printStackTrace();

}

}

}

以下是读取Excel文件的例程

/******************************************************************************

*演示使用POI读取Excel2007

*

*关键字:JavaExcelPOIPOI-HSSFPOI-XSSF

*注释:http://www.gjrencai.com/newsShow.asp?dataID=1485*

*开发环境详细说明:

*1、javaversion"1.6.0_14"

*2、Java(TM)SERuntimeEnvironment(build1.6.0_14-b08)

*3、JavaHotSpot(TM)ClientVM(build14.0-b16,mixedmode,sharing)

*4、MicrosoftExcel2007

*5、WindowsXPHomeEditionServicePack3

*6、ApachePOI3.5

*

*****************************************************************************/

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.Iterator;

importorg.apache.poi.openxml4j.exceptions.InvalidFormatException;

importorg.apache.poi.ss.usermodel.Cell;

importorg.apache.poi.ss.usermodel.DateUtil;

importorg.apache.poi.ss.usermodel.Row;

importorg.apache.poi.ss.usermodel.Sheet;

importorg.apache.poi.ss.usermodel.Workbook;

importorg.apache.poi.ss.usermodel.WorkbookFactory;

publicclassPOIExcelReadDemo1

{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args)

{

try

{

InputStreaminp;

inp=newFileInputStream("gaohw.xlsx");

Workbookwb=WorkbookFactory.create(inp);

Sheetsheet=wb.getSheetAt(0);

for(Iteratorrit=sheet.rowIterator();rit.hasNext();)

{

//迭代行

Rowrow=(Row)rit.next();

//迭代单元格

for(Iteratorcit=row.cellIterator();cit.hasNext();)

{

Cellcell=(Cell)cit.next();

//开始操作单元格

//在每一行的输出都打印如"5:6例子字符串",5:6代表第5行,第6列

//注意行和列是基于0索引的

System.out.print(cell.getRowIndex()+":"+cell.getColumnIndex()

+"");

//打印单元格内的数据

switch(cell.getCellType())

{

caseCell.CELL_TYPE_STRING:

System.out.println(cell.getRichStringCellValue().getString());

break;

caseCell.CELL_TYPE_NUMERIC:

if(DateUtil.isCellDateFormatted(cell))

{

System.out.println(cell.getDateCellValue());

}else

{

System.out.println(cell.getNumericCellValue());

}

break;

caseCell.CELL_TYPE_BOOLEAN:

System.out.println(cell.getBooleanCellValue());

break;

caseCell.CELL_TYPE_FORMULA:

System.out.println(cell.getCellFormula());

break;

default:

System.out.println();

}

}

}

}catch(FileNotFoundExceptione)

{

e.printStackTrace();

}catch(InvalidFormatExceptione)

{

e.printStackTrace();

}catch(IOExceptione)

{

e.printStackTrace();

}

}

}

相关推荐

WindyQCF / 0评论 2016-09-30