我正在使用org.apache.poi 3.15读取excel文件(文件扩展名为xlsx).
这是我的代码:
try (FileInputStream fileInputStream = new FileInputStream(file); XSSFWorkbook workbook = new XSSFWorkbook(file)) {
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "(Integer)\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "(String)\t");
break;
}
}
System.out.println("");
}
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我收到了一个cell.getCellType()
被弃用的警告.谁能告诉我替代方案?
Tom*_*zak 49
接受的答案显示了弃用的原因,但未命中替代方案:
CellType getCellTypeEnum()
Run Code Online (Sandbox Code Playgroud)
其中CellType
是enum描述细胞的类型.
计划是重新命名getCellTypeEnum()
为getCellType()
POI 4.0.
小智 14
您可以使用:
cell.getCellTypeEnum()
Run Code Online (Sandbox Code Playgroud)
为了比较单元格类型,您必须按如下方式使用CellType: -
if(cell.getCellTypeEnum() == CellType.STRING){
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
您可以参考文档.它非常有帮助: -
https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html
使用getCellType()
switch (cell.getCellType()) {
case BOOLEAN :
//To-do
break;
case NUMERIC:
//To-do
break;
case STRING:
//To-do
break;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
FileInputStream fis = new FileInputStream(new File("C:/Test.xlsx"));
//create workbook instance
XSSFWorkbook wb = new XSSFWorkbook(fis);
//create a sheet object to retrieve the sheet
XSSFSheet sheet = wb.getSheetAt(0);
//to evaluate cell type
FormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator();
for(Row row : sheet)
{
for(Cell cell : row)
{
switch(formulaEvaluator.evaluateInCell(cell).getCellTypeEnum())
{
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
default:
break;
}
}
System.out.println();
}
Run Code Online (Sandbox Code Playgroud)
此代码可以正常工作。使用getCellTypeEnum()
和比较使用just NUMERIC
或STRING
。
归档时间: |
|
查看次数: |
79489 次 |
最近记录: |