บทความนี้ส่วนใหญ่จะอธิบายถึงกระบวนการอัพโหลด Excel ภายใต้กรอบ Springboot-Mybatis และนำเข้าสู่ฐานข้อมูล MySQL หาก ID ผู้ใช้มีอยู่แล้วให้อัปเดตและแก้ไขข้อมูลในฐานข้อมูล เนื่องจากมีการใช้เทคโนโลยีการแยกส่วนหน้าบันทึกหลักของส่วน Java back-end เป็นอินเทอร์เฟซแบ็คเอนด์ มันสามารถใช้ฟังก์ชั่นโดยการเชื่อมต่อกับอินเทอร์เฟซส่วนหน้าและใช้เฟรมเวิร์กส่วนหน้าเช่น layui เพื่อเชื่อมต่อกับมัน คุณยังสามารถเขียนรหัสส่วนหน้าด้วยตัวเอง บทความนี้เริ่มต้นด้วยคอนโทรลเลอร์และเริ่มต้นด้วยกระบวนการแนะนำซึ่งรวมถึงการแปลงตารางพจนานุกรม
1. คำอธิบายประกอบการนำเข้าในไฟล์ pom.xml ส่วนใหญ่ใช้ POI
<การพึ่งพา> <roupId> org.apache.poi </groupId> <ratifactid> poi-ooxml </artifactid> <sersion> 3.9 </version> </การพึ่งพา> <การพึ่งพา> <roupid> Commons-Fileupload </GroupId> <RoupID> Commons-io </GroupID> <ArtIfactId> Commons-io </artifactId> <version> 2.4 </version> </derness>
2. อินเทอร์เฟซ Confortroller
@PostMapping ("/save") สตริงสาธารณะ adduser (@requestparam ("ไฟล์") ไฟล์ multipartFile) {String filename = file.getoriginalfilename (); ลอง {return sysservice.batchimport (ชื่อไฟล์, ไฟล์); } catch (myexception e) {e.printstacktrace (); ส่งคืน e.getMessage (); } catch (exception e) {e.printstacktrace (); ส่งคืน "ข้อยกเว้นไฟล์การนำเข้าล้มเหลว"; -3. อินเตอร์เฟสเลเยอร์บริการ
นำเข้าบูลีน (ชื่อไฟล์สตริงไฟล์ multipartFile) โยนข้อยกเว้น;
4. ชั้นเรียนการใช้งานเลเยอร์ธุรกิจ
@TransActional (readOnly = FALSE, ROLLBACKFOR = EXCAMENT.CLASS) @Override นำเข้าบูลีนสาธารณะ (ชื่อไฟล์สตริง, ไฟล์หลายไฟล์) โยนข้อยกเว้น {แผนที่ <สตริง, จำนวนเต็ม> DepartmentMap = findDepartment (); แผนที่ <สตริง, จำนวนเต็ม> rolemap = findrole (); บูลีน notnull = false; รายการ <user> userlist = arrayList ใหม่ <user> (); if (! filename.matches ("^.+//. (? i) (xls) $") &&! filename.matches ("^.+//. (? i) (xlsx) $")) {โยน myexception ใหม่ ("รูปแบบไฟล์อัปโหลดไม่ถูกต้อง"); } บูลีน isExcel2003 = true; if (filename.matches ("^.+//. (? i) (xlsx) $"))) {isExcel2003 = false; } inputStream คือ = file.getInputStream (); เวิร์กบุ๊ก wb = null; if (isExcel2003) {wb = new hssfworkbook (IS); } else {wb = New Xssfworkbook (IS); } แผ่นชีต = wb.getSheetat (0); if (sheet! = null) {notnull = true; ผู้ใช้} ผู้ใช้; สำหรับ (int r = 1; r <= sheet.getLastrownum (); r ++) {row row = sheet.getrow (r); if (row == null) {ดำเนินการต่อ; } user = ผู้ใช้ใหม่ (); if (row.getCell (0) .getCellType ()! = 1) {โยน myException ใหม่ ("นำเข้าล้มเหลว (แถว"+(r+1)+"และรูปแบบเซลล์ ID ถูกตั้งค่าเป็นรูปแบบข้อความ)"); } string id = row.getCell (0) .getStringCellValue (); if (id == null || id.isempty ()) {โยน myexception ใหม่ ("นำเข้าล้มเหลว (แถว"+(r+1)+"และไม่ได้กรอกข้อมูล)"); } string name = row.getCell (1) .getStringCellValue (); if (name == null || name.isempty ()) {โยน myexception ใหม่ ("นำเข้าล้มเหลว (บรรทัด"+(r+1)+"และชื่อไม่ได้กรอก)"); } String Department = row.getCell (2) .getStringCellValue (); if (Departmentmap.get (แผนก) == null) {โยน myexception ใหม่ ("นำเข้าล้มเหลว (บรรทัด"+(r+1)+"และหน่วยนี้ไม่มีอยู่หรือหน่วยไม่ได้กรอก)"); } string role = row.getCell (3) .getStringCellValue (); ถ้า (rolemap.get (บทบาท) == null) {โยน myexception ใหม่ ("นำเข้าล้มเหลว (บรรทัด"+(r+1)+"บทบาทนี้ไม่มีอยู่หรือบทบาทไม่ได้กรอก)"); } วันที่วันที่; if (row.getCell (4) .getCellType ()! = 0) {โยน myException ใหม่ ("นำเข้าล้มเหลว (บรรทัด"+(r+1)+"รูปแบบวันที่รายการไม่ถูกต้องหรือไม่กรอก)"); } else {date = row.getCell (4) .getDateCellValue (); } user.setId (id); user.setName (ชื่อ); user.setDepartmentId ((int) แผนก map.get (แผนก)); user.setroleid ((int) rolemap.get (บทบาท)); user.setDate (วันที่); userlist.add (ผู้ใช้); } สำหรับ (ผู้ใช้ผู้ใช้: UserList) {String id = user.getId (); int cnt = usermapper.selectbyid (id); if (cnt == 0) {usermapper.adduser (ผู้ใช้); } else {usermapper.updateUserById (ผู้ใช้); }} return notnull; -สรุป
ข้างต้นคือสิ่งที่บรรณาธิการแนะนำให้คุณ Springboot อัปโหลด Excel และนำเข้าข้อมูลตารางลงในหรืออัปเดตฐานข้อมูล MySQL ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!