Java代码实现 Excel上传并保存数据库 根据Excel表中的教室名称获取到另一个表中的教室Id
时间: 2023-11-27 15:54:03 浏览: 77
javaWeb上传Excel文件并将数据保存到数据库
以下是Java代码实现Excel上传并保存数据库,并根据教室名称获取教室ID的示例:
```java
//导入所需的包
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class ExcelController {
@Autowired
private RoomDao roomDao; //自动注入RoomDao
@RequestMapping(value = "/uploadExcel", method = RequestMethod.POST)
public String uploadExcel(@RequestParam("file") MultipartFile file) throws IOException {
//读取Excel文件
HSSFWorkbook workbook = new HSSFWorkbook(file.getInputStream());
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rows = sheet.iterator();
while (rows.hasNext()) {
HSSFRow row = (HSSFRow) rows.next();
Iterator<Cell> cells = row.cellIterator();
String classroomName = null;
while (cells.hasNext()) {
HSSFCell cell = (HSSFCell) cells.next();
int columnIndex = cell.getColumnIndex();
switch (columnIndex) {
case 0:
classroomName = cell.getStringCellValue();
break;
//其他列的处理
}
}
//根据教室名称获取教室ID
Room room = roomDao.findByClassroomName(classroomName);
if (room != null) {
//将Excel中的数据保存到数据库中
//...
}
}
return "success"; //上传成功后跳转到成功页面
}
}
```
需要注意的是,上述代码中的`RoomDao`是一个用于访问数据库的DAO类,需要根据具体的情况进行调整。同时,代码中的`findByClassroomName`方法是一个自定义的查询方法,需要在`RoomDao`中进行定义和实现。
阅读全文