java使用poi上传并解析Excel文档
Posted Azjs丶V1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用poi上传并解析Excel文档相关的知识,希望对你有一定的参考价值。
public void importFile(MultipartFile uploadFile) throws IOException {
String fileName = uploadFile.getOriginalFilename();
String fileType = "";
if (fileName.lastIndexOf(".") != -1
&& fileName.lastIndexOf(".") + 1 < fileName.length()) {
fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
}
try {
InputStream fis = uploadFile.getInputStream();
Workbook workbook = null;
if (fileType.toLowerCase().equals("xlsx")) {
workbook = new XSSFWorkbook(fis);
} else if (fileType.toLowerCase().equals("xls")) {
workbook = new HSSFWorkbook(fis);
}
// 获取每个sheet表
int numberOfSheets = workbook.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++) {
Sheet sheet = workbook.getSheetAt(i);
// 获取每行
for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) {
XSSFRow row = (XSSFRow) sheet.getRow(j);
if (row != null) {
// 获取每个单元格
for (int k = 0; k < sheet.getRow(0)
.getPhysicalNumberOfCells(); k++) {
Cell cell = row.getCell(k);
// 设置返回值类型
cell.setCellType(Cell.CELL_TYPE_STRING);
}
}
}
fis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
返回值类型的处理
private String getValue(HSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布尔类型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回数值类型的值
return String.valueOf(hssfCell.getNumericCellValue());
} else {
// 返回字符串类型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}
以上是关于java使用poi上传并解析Excel文档的主要内容,如果未能解决你的问题,请参考以下文章
使用OCUpload和POI一键上传Excel并解析导入数据库