public void main(File file){
InputStream in = new FileInputStream(file);
// 判断是否是excel2007格式
boolean isE2007 = false;
if (file.getName().endsWith("xlsx")) {
isE2007 = true;
}
//
Workbook wb = null;
// 根据文件格式(2003或者2007)来初始化
if (isE2007) {
wb = new XSSFWorkbook(in);
} else {
wb = new HSSFWorkbook(in);
}
//解析第一个sheet工作单元
Sheet sheet = wb.getSheetAt(0);
//get file的总行数
int lastRowNum = sheet.getLastRowNum();
//迭代解析文件没一行数据
for (int i = 0; i < (lastRowNum+1); i++) {
//get 本行数据共有多少列
int cellNum = sheet.getRow(i).getLastCellNum();
for (int j = 0; j < cellNum; j++) {
//打印一行数据
System.out.print(judgeTypeGetStr(sheet.getRow(i).getCell(j))+",");
}
System.out.println();
}
}
// 判断当前cell的数据类型,根据数据类型转换成string并返回
public static String judgeTypeGetStr(Cell cell) {
DecimalFormat df = new DecimalFormat("#");
switch (cell.getCellType()) { // 根据cell中的类型来输出数据
case HSSFCell.CELL_TYPE_NUMERIC:
return df.format(cell.getNumericCellValue()).trim();
case HSSFCell.CELL_TYPE_STRING:
return cell.getStringCellValue().trim();
case HSSFCell.CELL_TYPE_BOOLEAN:
return cell.getBooleanCellValue() + "".trim();
case HSSFCell.CELL_TYPE_FORMULA:
return df.format(cell.getCellFormula()).trim();
default:
return "";
}
}