zoukankan      html  css  js  c++  java
  • SpringBoot导入Excel数据到MySQL数据库

    package com.example.example1.Controller;

     1 import com.example.example1.Entity.User;
     2 import com.example.example1.Service.UserRepository;
     3 import org.apache.poi.hssf.usermodel.*;
     4 import org.apache.poi.ss.usermodel.Cell;
     5 import org.apache.poi.ss.usermodel.Row;
     6 import org.apache.poi.ss.usermodel.Sheet;
     7 import org.apache.poi.ss.usermodel.Workbook;
     8 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
     9 import org.springframework.beans.factory.annotation.Autowired;
    10 import org.springframework.stereotype.Controller;
    11 import org.springframework.web.bind.annotation.GetMapping;
    12 import org.springframework.web.bind.annotation.RequestMapping;
    13 import org.springframework.web.bind.annotation.ResponseBody;
    14 
    15 import java.io.File;
    16 import java.io.FileInputStream;
    17 import java.io.IOException;
    View Code
    /**
     * Created by BLIT on 2018/11/30.
     */
    @Controller
    @RequestMapping(path = "/excel")
    public class ImportController {
        @Autowired
        private UserRepository userRepository;
    
        @GetMapping(path = "/import")
        @ResponseBody
        public void Import() throws IOException{
            File file = new File("C:\Users\zxg\Desktop\测试2003.xls"); //实际这个路径由前端传后台
            FileInputStream fis = new FileInputStream(file);
            Workbook wb = null;
            try {
                if(isExcel2003(file.getPath())){
                    System.out.println("2003版本Excel: .xls结尾");
                    wb = new HSSFWorkbook(fis); //创建2003版本Excel工作簿对象
                }else if (isExcel2007(file.getPath())){
                    System.out.println("2007版本Excel: .xlsx结尾");
                    wb = new XSSFWorkbook(fis); //创建2007版本Excel工作簿对象
                }else {
                    System.out.println("未知版本的Excel !!!");
                }
                Sheet sheet = wb.getSheetAt(0); //获取第1个工作表
                for(int i=1;i<=sheet.getLastRowNum();i++){//循环Excel文件的i=1行开始
                    User user = new User();
                    Row row = sheet.getRow(i); //获取第i行
                    Cell cell1 = row.getCell(0); //获取第1个单元格的数据
                    cell1.setCellType(Cell.CELL_TYPE_STRING); //设置Cell的类型为String类型
                    Cell cell2 = row.getCell(1); //获取第2个单元格的数据
                    cell2.setCellType(Cell.CELL_TYPE_STRING);
                    user.setName(cell1.getStringCellValue());
                    user.setEmail(cell2.getStringCellValue());
                    System.out.println("第一单元格: " + cell1.getStringCellValue());
                    System.out.println("第二单元格: " + cell2.getStringCellValue());
                    userRepository.save(user); //保存
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                fis.close();
            }
        }
    
        public static boolean isExcel2003(String filePath)
        {
            return filePath.matches("^.+\.(?i)(xls)$");
        }
    
        public static boolean isExcel2007(String filePath)
        {
            return filePath.matches("^.+\.(?i)(xlsx)$");
        }
    
    }
  • 相关阅读:
    TOMCAT原理详解及请求过程
    详解Tomcat配置及使用
    Android网络编程(三)Volley使用方法全解析
    Android开发文档翻译之-Services
    竞赛中经常使用的C++写法
    Android消息机制
    boost的内存管理
    二叉树遍历技巧
    【 D3.js 视频系列 】 飞速入门
    [Spring实战系列](19)Servlet不同版本号之间的差别
  • 原文地址:https://www.cnblogs.com/zxg-6/p/10058392.html
Copyright © 2011-2022 走看看