使用postman上传excel Java后端解析excel并导入数据
Controller层
@RequestMapping(value = "importExcel", method = RequestMethod.POST)
@ResponseBody
public String importExcel(@ModelAttribute MultipartFile file) throws Exception {
return baseAreaService.importExcel(file);
}
Servvice层
@Transactional(readOnly=false)
public String importExcel(MultipartFile file) throws Exception {
Workbook wb = null;
List<BaseArea> list =new ArrayList<>();
if (file != null) {
// 兼容Excel新版本和老版本,xlsx和xls不兼容
wb = getWorkbook(file);
// 获取第一页数据
Sheet sheet = wb.getSheetAt(0);
// 获取第一页总行数
int rowCount = sheet.getPhysicalNumberOfRows();
// 开始循环取出每一行的数据,
for (int i = 0; i < rowCount; i++) {
BaseArea baseArea= new BaseArea();
// 从第0行开始,因为第0行一般是抬头所以直接从下面一行开始
Row row = sheet.getRow(i);
// 取出每一列的值,从第0列开始
String code = "";//
String name = "";//
Cell cellname = row.getCell(0);
Cell cellmobile = row.getCell(1);
cellname.setCellType(CellType.STRING);
code = cellname.getStringCellValue().trim();
cellmobile.setCellType(CellType.STRING);
name = cellmobile.getStringCellValue().trim();
baseArea.setAreaCode(code);
baseArea.setAreaName(name);
}
}
return "";
}
// 兼容Excel新版本和老版本,xlsx和xls不兼容
public static Workbook getWorkbook(MultipartFile file) throws IOException {
Workbook workbook = null;
String fileName = file.getOriginalFilename();
if (fileName.endsWith("xls")) {
POIFSFileSystem pois = new POIFSFileSystem(file.getInputStream());
workbook = new HSSFWorkbook(pois);
} else if (fileName.endsWith("xlsx")) {
workbook = new XSSFWorkbook(file.getInputStream());
}
return workbook;
}
分类:
2023
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~