Excel表實現資料匯入匯出
阿新 • • 發佈:2018-11-23
資料匯入:
@PostMapping("/imp") public String imp(@RequestPart("filePath") MultipartFile filePath) { //建立一個excel檔案 HSSFWorkbook workbook = null; try { workbook = new HSSFWorkbook(filePath.getInputStream()); //獲取檔案 Sheet sheet = workbook.getSheetAt(0); //獲取第一個工作表 //迴圈工作表的資料 //getLastRowNum() 獲取行 for (int i = 0; i < sheet.getLastRowNum(); i++) { Row row = sheet.getRow(i + 1); //下表是從0開始的所以 把行數設定為第二行從第二行開始讀 Cell cell = row.getCell(0); //獲取第一個單元格,以此類推 Cell cel2 = row.getCell(1); Cell cel3= row.getCell(2); Cell cel4 = row.getCell(3); Cell cel5 = row.getCell(4); //獲取值 int id = (int) cell.getNumericCellValue(); String name = cel2.toString(); String sex = cel3.toString(); String education= cel4.toString(); int monthly = (int) cel5.getNumericCellValue(); //把值放到物件 Staff staff = new Staff(id, name, sex, education, monthly); //呼叫mapper進行新增 int count = staffMapper.insert(staff); if (count > 0) { System.out.println("上傳成功"); } } } catch (IOException e) { e.printStackTrace(); } return "redirect:/emp"; }
資料匯出到本地:
//把資料匯出到Excel中 @GetMapping("/exc") public String derive(Model model, HttpSession session) { // 第一步,建立一個webbook,對應一個Excel檔案 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中新增一頁,對應Excel檔案中的sheet HSSFSheet sheet = wb.createSheet("員工表一"); // 第三步,在sheet中新增表頭第0行,注意老版本poi對Excel的行數列數有限制short HSSFRow row = sheet.createRow((int) 0); //0代表第一行 // 第四步,建立單元格,並設定值表頭 設定表頭居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); HSSFCell cell = row.createCell((short) 0); cell.setCellValue("員工編號"); cell.setCellStyle(style); cell = row.createCell((short) 1); cell.setCellValue("姓名"); cell.setCellStyle(style); cell = row.createCell((short) 2); cell.setCellValue("性別"); cell.setCellStyle(style); cell = row.createCell((short) 3); cell.setCellValue("學歷"); cell.setCellStyle(style); cell = row.createCell((short) 4); cell.setCellValue("月薪"); cell.setCellStyle(style); // 第五步,寫入實體資料 實際應用中這些資料從資料庫得到, List<Staff> list = staffMapper.selectAll(); for (int i = 0; i < list.size(); i++) { row = sheet.createRow((int) i + 1); // 第四步,建立單元格,並設定值 row.createCell((short) 0).setCellValue(list.get(i).getId()); row.createCell((short) 1).setCellValue(list.get(i).getName()); row.createCell((short) 2).setCellValue(list.get(i).getSex()); row.createCell((short) 3).setCellValue(list.get(i).getEducation()); row.createCell((short) 4).setCellValue(list.get(i).getMonthly()); } // 第六步,將檔案存到指定位置 try { FileOutputStream fout = new FileOutputStream("E:\\aaa.xls"); wb.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); } session.setAttribute("add","資料匯出成功"); return "redirect:/emp"; }