SSM项目结合POI导入
需要的jar包如下:(XSSFWorkbook 和HSSFWorkbook 都适用)
InputStream inputStream = file.getInputStream(); //此处file指的是springmvc的MultipartFile
HashMap<String, String> map = new HashMap<String, String>(); //用于数据
XSSFWorkbook workbook = new XSSFWorkbook(inputStream); //XSSF...接收的xlsx格式
//HSSFWorkbook workbook = new HSSFWorkbook(inputStream); //HSSF..接收的是xls格式
XSSFSheet sheet = workbook.getSheetAt(0); //得到第一个sheet页
for (Row row : sheet) { //便利sheet页的“每一行” ==row
int num = row.getRowNum(); //得到每一行的行号,从0开始
// 剔除标题
if (num == 0) {
if ("".equals(row.getCell(1)) || row.getCell(1) == null) {
return "错误的的Excel文件!";
} else if ("标准名称".equals(row.getCell(1)
.getStringCellValue())) {
continue; //跳出本次循环
} else {
return "请选择正确的Excel文件!";
}
}
for (int i = 0; i < row.getLastCellNum(); i++) {//row.getLastCellNum()得到总列数,即此处循环是 便利每一行的 每一列,i指的是列数 row.getCell(i)得到单元格的数值
if (row.getCell(i) == null || "".equals(row.getCell(i))) {
sb.append("第" + row.getRowNum() + "内容不可为空, ");
} else { // 将第row行的第i列 的cell中的 内容当做字符串处理
row.getCell(i).setCellType(XSSFCell.CELL_TYPE_STRING);//设置格式为String类型
map.put("" + i + "", row.getCell(i)
.getStringCellValue());
}
}
validityStd.setA100(map.get("0"));
validityStd.setA298(map.get("1"));
validityStd.setSearchNo(validity.getSearchNo()); //编号
int m = validityStdMapper.insert(validityStd);//存入数据库
if (m < 1) {
return "添加失败";
}
}