目标:
一、将准备好的具有数据的excel表解析出来,并且将信息打印在控制台中
一、搭建poi项目
首先要搭建好poi项目,将poi相关的jar包导入到项目中。
二、写程序,解析excel表
相关步骤,已在程序中写清楚,其中,对于单元格cell的类型值,可以查看poi的API。
package test;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
public class InputExcel {
public static void main(String [] args) throws Exception{
//将准备好的excel表读入到内存
FileInputStream fis = new FileInputStream("FirstExcel.xls");
//将读出来的excel表用wb来保存
HSSFWorkbook wb = new HSSFWorkbook(fis);
//得到excel中的一张表
Sheet sheet = wb.getSheetAt(0);
//此处用foreach方法遍历,遍历sheet还有别的方法,但是这种是最简单的
//旧版本的poi,不支持forEach遍历
for(Row row : sheet){
for(Cell cell : row){
//判断当前单元格中内容的类型,cell.getCellType()返回值是整数
switch(cell.getCellType()){
//此处是用到Cell类中的常量
//如果当前单元格的内容是数字,则进行下一步判断
case Cell.CELL_TYPE_NUMERIC:
//判断当前单元格内容是否是日期类型,如果是日期类型,则转换成日期来打印,否则,按double类型打印
if(DateUtil.isCellDateFormatted(cell)){
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
break;
//判断当前单元格的内容是否为字符串类型。
case Cell.CELL_TYPE_STRING:
System.out.println(cell.getStringCellValue());
break;
}
}
}
//关闭流
fis.close();
}
}
接下来,讲解Web项目中,用Excel保存数据的批量导入和批量导出(也就是将数据库中的数据导出到excel表中)。
分为两部分,一部分是jsp + servlet,一部分是struts + spring +hibernate.