try {
//创建url
URL url = new URL(fileUrl);
//创建URl连接
URLConnection connection = url.openConnection();
//连接远程服务器
connection.connect();
XSSFWorkbook workbook = null;
try {
workbook = new XSSFWorkbook(connection.getInputStream());
// 读取第一页
XSSFSheet sheet = workbook.getSheetAt(0);
//获取有效行数
int lastRowNum = sheet.getLastRowNum();
//可以在这里对模板中的第一行标题 进行判断 是否是原先导出的模板
//第一行不做为数据
for (int i = 1; i <=lastRowNum; i++) {
XSSFRow row = sheet.getRow(i);
short lastCellNum = row.getLastCellNum();
List<String> list=new ArrayList<>();
for (int j = 0; j <lastCellNum ; j++) {
XSSFCell cell = row.getCell(j);
//强制把内容设置为字符串,再读取
cell.setCellType(Cell.CELL_TYPE_STRING);
//判断单元格类型的方法
String cellValue = pdType(cell);
list.add(cellValue);
}
//把数据存到数据库方法
saveData(list);
}
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (workbook != null) {
workbook.close();
}
}
return RestResponse.success();
} catch (IOException e) {
e.printStackTrace();
return RestResponse.failure("导入失败");
}
}
//判断单元格类型
public String pdType(XSSFCell cell){
String cellValue = "";
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING://字符串类型
cellValue = cell.getStringCellValue();
break;
case XSSFCell.CELL_TYPE_NUMERIC: //数值类型
cellValue = String.valueOf(cell.getNumericCellValue());
break;
default:
break;
}
return cellValue;
}