代码实现poi导入excel,excel中没有日期用getStringCellValue,有日期用getDateCellValue
时间: 2024-03-28 09:42:35 浏览: 12
好的,下面是一个POI导入Excel的示例代码,其中包括了处理不同数据类型的单元格的方法:
```java
import java.io.File;
import java.io.FileInputStream;
import java.util.Date;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelImporter {
public static void main(String[] args) {
try {
FileInputStream file = new FileInputStream(new File("data.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
System.out.print(date.toString() + "\t");
} else {
System.out.print(cell.getNumericCellValue() + "\t");
}
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
case FORMULA:
System.out.print(cell.getCellFormula() + "\t");
break;
default:
System.out.print("\t");
}
}
System.out.println();
}
workbook.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先读取了Excel文件,然后获取了第一个Sheet,接着遍历每一行和每一列,根据单元格的数据类型,使用不同的方法来获取单元格的值。如果单元格的数据类型为日期,我们使用`isCellDateFormatted`方法来判断,然后使用`getDateCellValue`方法来获取日期值。最后,我们关闭了Workbook和文件流。
希望这个示例代码能够帮到你。