Artikel ini terutama menjelaskan proses mengunggah Excel di bawah kerangka kerja Springboot-Mybatis dan mengimpornya ke dalam database MySQL. Jika ID Pengguna sudah ada, perbarui dan modifikasi informasi dalam database. Karena teknologi pemisahan front-end digunakan, catatan utama bagian java back-end adalah antarmuka back-end. Ini dapat mengimplementasikan fungsi dengan menghubungkan dengan antarmuka front-end, dan menggunakan kerangka kerja front-end seperti LayUi untuk terhubung dengannya. Anda juga dapat menulis kode front-end sendiri. Artikel ini dimulai dengan pengontrol dan dimulai dengan proses pengantar, yang mencakup konversi tabel kamus.
1. Impor anotasi dalam file pom.xml, terutama menggunakan POI
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <GroupId> Commons -o </groupid> <ArTifactId> commons-io </artifactid> <version> 2.4 </version> </dependency>
2. Antarmuka Kontrol
@PostMapping ("/save") Public String addUser (@RequestParam ("File") File multipartFile) {string filename = file.getoriginalFileName (); coba {return sysservice.batchImport (fileName, file); } catch (myException e) {e.printstacktrace (); return e.getMessage (); } catch (Exception e) {E.PrintStackTrace (); mengembalikan "Pengecualian File, Impor Gagal"; }}3. Antarmuka lapisan layanan
Impor Boolean (nama file string, file multipartfile) melempar pengecualian;
4. Kelas Implementasi Lapisan Bisnis
@Transactional (readOnly = false, rollbackfor = exception.class) @Override public boolean impor (string fileName, file multipartfile) melempar pengecualian {peta <string, integer> departmentMap = findDepartment (); Peta <string, integer> rolemap = findRole (); boolean notnull = false; Daftar <User> userList = new ArrayList <User> (); if (! filename.matches ("^.+//. (? i) (xls) $") &&! filename.matches ("^.+//. (? i) (xlsx) $")) {lempar myException baru ("Format file unggah tidak benar"); } boolean isExcel2003 = true; if (filename.matches ("^.+//. (? i) (xlsx) $"))) {isExcel2003 = false; } InputStream adalah = file.getInputStream (); Workbook WB = NULL; if (isExcel2003) {wb = hssfworkbook baru (IS); } else {wb = new xssfworkbook (IS); } Sheet sheet = wb.getsheetat (0); if (sheet! = null) {notnull = true; } Pengguna pengguna; untuk (int r = 1; r <= sheet.getlastrownum (); r ++) {baris baris = sheet.getrow (r); if (row == null) {lanjutkan; } user = pengguna baru (); if (row.getCell (0) .getCellType ()! = 1) {lempar myException baru ("Impor gagal (baris"+(r+1)+"dan format sel ID diatur ke format teks)"); } String id = row.getCell (0) .getStringCellValue (); if (id == null || id.isempty ()) {lempar myException baru ("impor gagal (baris"+(r+1)+"dan id tidak diisi)"); } String name = row.getCell (1) .getStringCellValue (); if (name == null || name.isempty ()) {lempar myException baru ("impor gagal (line"+(r+1)+"dan name tidak diisi)"); } String department = row.getCell (2) .getStringCellValue (); if (departmentmap.get (department) == null) {lempar myException baru ("impor gagal (line"+(r+1)+"dan unit ini tidak ada atau unit tidak diisi)"); } String role = row.getCell (3) .getStringCellValue (); if (rolemap.get (role) == null) {lempar myException baru ("impor gagal (line"+(r+1)+", peran ini tidak ada atau peran tidak diisi)"); } Tanggal tanggal; if (row.getCell (4) .getCellType ()! = 0) {lempar myException baru ("Impor gagal (baris"+(r+1)+", format tanggal entri salah atau tidak diisi)"); } else {date = row.getCell (4) .getDateCellValue (); } user.setId (id); user.setname (name); user.setDepartmentId ((int) departmentMap.get (departemen)); user.setroleid ((int) rolemap.get (role)); user.setDate (tanggal); userlist.add (pengguna); } untuk (pengguna pengguna: userList) {string id = user.getId (); int cnt = usermapper.selectById (id); if (cnt == 0) {usermapper.adduser (pengguna); } else {usermapper.updateUserbyId (user); }} return notnull; }Meringkaskan
Di atas adalah apa yang diperkenalkan oleh editor kepada Anda. Springboot mengunggah Excel dan mengimpor data tabel ke atau memperbarui database MySQL. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!