在实际开发过程中,我们经常需要导出数据,导入数据,无可避免的就要使用到excel,知道它的使用场景就开始我们的第一个Demo
- 导入pom依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
- 包名称说明
POI提供了多种格式的操作,详情请参考官网API传送门 ,本篇只讨论 excel。ps: 操作doc等格式需要导入其他jar包
- HSSF - 提供读写Microsoft Excel格式档案的功能。
- HWPF - 提供读写Microsoft Word格式档案的功能。
- HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
写入
ps:本操作实在.xls格式下进行的,请注意
//创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook() ;
//设置保存入径
String filePath= "D:\\TEST.xls";
//工作类
HSSFSheet sheet = workbook.createSheet("tanoak");
HSSFRow rows = sheet.createRow(0) ;
HSSFCell cell = rows.createCell(0);
cell.setCellValue("张三");
rows.createCell(1).setCellValue("男");
rows.createCell(2).setCellValue(28);
FileOutputStream fileOutputSteam = new FileOutputStream(filePath);
workbook.write(fileOutputSteam);
System.out.println("保存成功");
fileOutputSteam.close();
读取
String filePath= "D:\\TEST.xls";
String text="";
FileInputStream is = new FileInputStream(filePath);
HSSFWorkbook excel=new HSSFWorkbook(is);
//获取第一个sheet
HSSFSheet sheet0=excel.getSheetAt(0);
for (Iterator rowIterator = sheet0.iterator(); rowIterator.hasNext();) {
HSSFRow row=(HSSFRow) rowIterator.next();
for (Iterator iterator=row.cellIterator();iterator.hasNext();) {
HSSFCell cell=(HSSFCell) iterator.next();
//根据单元的的类型 读取相应的结果
if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING) text+=cell.getStringCellValue()+"\t";
else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC) text+=cell.getNumericCellValue()+"\t";
else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA) text+=cell.getCellFormula()+"\t";
}
}
System.out.println(text);
下一篇文章将使用EasyPoi 来操作,带你体验操作之美