Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
当采用默认的单元格格式,当单元格中为纯数字时,例如
当如下获取时,得到的却是41000.0
// 商品编号
String productNo = (row.getCell(productNoIndex) != null ? row.getCell(productNoIndex) : "").toString();
一、原因
poi默认的是double类型的数据
二、如何修改
但是如果Excel设置的是数字格式,那么如何修改程序,使得输入整数即读出整数,输入小数即读出小数
Workbook excelWB =
null
;
excelWB =
new
XSSFWorkbook(excelFile);
oneSheet = excelWB.getSheetAt(
0
);
oneRow = oneSheet.getRow(rowNum);
if
(oneRow ==
null
) {
continue
;
}
// 获取第几列对象
oneCell = oneRow.getCell(
1
);
if
(oneCell ==
null
) {
continue
;
}
switch
(oneCell.getCellType()) {
case
HSSFCell.CELL_TYPE_STRING:
System.out.println(oneCell.getStringCellValue());
break
;
case
HSSFCell.CELL_TYPE_FORMULA:
System.out.println(oneCell.getCellFormula());
break
;
case
HSSFCell.CELL_TYPE_NUMERIC:
HSSFDataFormatter dataFormatter =
new
HSSFDataFormatter();
String cellFormatted = dataFormatter.formatCellValue(oneCell);
System.out.println( cellFormatted );
break
;
case
HSSFCell.CELL_TYPE_ERROR:
break
;
}
需要注意的地方:纯数字的情况下,即时将单元格改为文本格式,利用上述取值,也会是41000.0,也可以将上述做如下修改,即可