2.复杂读取
2.1 单元格各类型数据读取
2.1.1 基本类型
在实际工作中,我们处理的Excel数据都不止限于字符型数据,更多的是数字、日期、甚至公式等。
下面是单元格类型说明:
类型 |
|
CELL_TYPE_BLANK |
空值(cell不为空) |
CELL_TYPE_BOOLEAN |
布尔 |
CELL_TYPE_ERROR |
错误 |
CELL_TYPE_FORMULA |
公式 |
CELL_TYPE_STRING |
字符串 |
CELL_TYPE_NUMERIC |
数值 |
以上单元格的类型,可以通过getCellType()方法获得,返回值为int。
下面读取一个多类型数据Excel文件:
图7中,数据文件格式包括字符、数字、公式、布尔。
图7
代码片段:
public static void read(InputStream inputStream) throws IOException{
HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
//循环workbook中所有sheet
for(int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++){
HSSFSheet sheet = workbook.getSheetAt(sheetIndex);
//循环该sheet中的有数据的每一行
for(int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++){
HSSFRow row = sheet.getRow(rowIndex);
if(row == null){
continue;
}
//循环该行的每一个单元格
for(int cellnum = 0; cellnum < row.getLastCellNum(); cellnum++){
HSSFCell cell = row.getCell(cellnum);
getCellValue(cell, rowIndex, cellnum);
}
}
}
}
public static void getCellValue(HSSFCell cell, int rowIndex, int cellnum){
if(cell == null){
return;
}else if(cell.getCellType()