Este artigo descreve principalmente o processo de fazer upload do Excel sob a estrutura Springboot-Mybatis e importá-lo para o banco de dados MySQL. Se o ID do usuário já existir, atualize e modifique as informações no banco de dados. Como a tecnologia de separação front-end é usada, o principal registro da parte java back-end é a interface back-end. Ele pode implementar funções conectando-se à interface front-end e usar estruturas front-end, como o Layui, para se conectar a ele. Você também pode escrever um código de front-end. Este artigo começa com o controlador e começa com o processo de introdução, que inclui a conversão da tabela de dicionário.
1. Anotações de importação no arquivo pom.xml, principalmente usando 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> <GrupoId> Commons-io </frugiD> <TRARFACTID> Commons-Io </stifactId> <versão> 2.4 </versão> </dependency>
2. Interface do Controlador
@PostMapping ("/Salvar") public string addUser (@requestParam ("arquivo de arquivo") arquivo multipart de arquivo) {string filename = file.getoriginalfilename (); tente {return sysservice.batchimport (nome do arquivo, arquivo); } catch (myException e) {e.printStackTrace (); retorno e.getMessage (); } catch (Exceção e) {e.printStackTrace (); retornar "Exceção do arquivo, falha de importação"; }}3. Interface da camada de serviço
importação booleana (nome do arquivo de string, arquivo multipart -arquivo) lança exceção;
4. Classe de implementação da camada de negócios
@Transactional (readOnly = false, rollbackfor = excepcion.class) @Override public boolean Import (nome do arquivo de string, arquivo multipart -arquivo) lança exceção {map <string, integer> departmentMap = findDepartment (); Mapa <string, número inteiro> rolemap = findRole (); boolean notnull = false; List <usery> userList = new ArrayList <suser> (); if (! FileName.Matches ("^.+//. (? i) (xls) $") &&! FileName.matches ("^. } boolean isexcel2003 = true; if (filename.matches ("^.+//. (? i) (xlsx) $"))) {isexcel2003 = false; } InputStream is = file.getInputStream (); Pasta de trabalho wb = null; if (isexcel2003) {wb = novo hssfworkbook (is); } else {wb = new XSSFWorkbook (IS); } Folha = wb.getSheetat (0); if (folha! = null) {notnull = true; } Usuário do usuário; for (int r = 1; r <= sheet.getLastrownum (); r ++) {linha linha = sheet.getRow (r); if (linha == null) {continue; } usuário = novo usuário (); if (row.getCell (0) .getCellType ()! = 1) {lança nova myException ("importar falhou (linha"+(r+1)+"e o formato da célula de identificação está definido como formato de texto)"); } String id = row.getCell (0) .getStringCellValue (); if (id == null || id.isempty ()) {throw new myException ("importar falhou (linha"+(r+1)+"e id não preenchido)"); } String name = row.getCell (1) .getStringCellValue (); if (nome == null || name.isempty ()) {throw new myException ("importar falhou (linha"+(r+1)+"e nome não preenchido)"); } String departamento = row.getCell (2) .getStringCellValue (); if (departmentMap.get (departamento) == null) {tiro a nova myException ("importar falhou (linha"+(r+1)+"e esta unidade não existe ou a unidade não está preenchida)"); } String role = row.getCell (3) .getStringCellValue (); if (rolemap.get (função) == null) {throw new myException ("importar falhou (linha"+(r+1)+", essa função não existe ou a função não é preenchida)"); } Data de data; if (row.getCell (4) .getCellType ()! = 0) {lança nova myException ("importar falhou (linha"+(r+1)+", o formato da data de entrada está incorreto ou não é preenchido)"); } else {date = row.getCell (4) .getDateCellValue (); } user.setId (id); user.setName (nome); user.setDepartmentId ((int) departamentoMap.get (departamento)); user.setRoleId ((int) rolemap.get (função)); user.SetDate (data); userlist.add (usuário); } para (usuário do usuário: userList) {string id = user.getId (); int cnt = userMApper.SelectById (ID); if (cnt == 0) {userMApper.adduser (usuário); } else {userMApper.UpDateUserById (usuário); }} retornar notnull; }Resumir
O exposto acima é o que o editor apresenta para você. O Springboot upload se destaca e importa os dados da tabela ou atualiza o banco de dados MySQL. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!