java中excel上传到数据库

关于前后台分离,vue+ springboot+ oracle实现上传excel和下载excel

Excel上传

上传

上传主要的就是如何将excel表中的数据取出来,有一下几个语句来实现取出excel的数据

1.处理Excel文件的类

XSSFWorkbook book = new XSSFWorkbook(inputStream);//inputSteam为字节输入流

2.拿到了Excel文件中第一个表

XSSFSheet sheet = book.getSheetAt(0);

3.获取excel中最大行数

int rownum = sheet.getPhysicalNumberOfRows()

4.获取excel中获得该行的最大列数

firstrow.getLastCellNum()

5.获取excel中单元格的内容转成字符串

 firstrow.getCell(i).toString()

2.总体的解析excel的代码

 System.out.println("开始解析excel");
        try {
        //存放字段的列表
            List<String> key=new ArrayList<>();
            //这里存放数据的类
            User user = new User();
            //filename为文件名    file为上传上来的文件
            //通过上传的文件获取上传的文件的输入流:因为解析excel文件时需要这个文件的输入流
            InputStream inputStream = file.getInputStream();
            //开始解析excel文件
            XSSFWorkbook book = new XSSFWorkbook(inputStream);//处理Excel文件的类
            XSSFSheet sheet = book.getSheetAt(0); //相当与拿到了Excel文件中第一个表
            int rownum = sheet.getPhysicalNumberOfRows();//获取excel表中的最大行数

            /*获取表头的字段列*/
            /*获取第一行*/
            Row firstrow=sheet.getRow(0);
            /*所有列的字段*/
            for (int i = 0; i < firstrow.getLastCellNum(); i++) {
                //获取当前单元格的内容
                /*System.out.println(row.getCell(i).toString());*/
                key.add(firstrow.getCell(i).toString());
            }
            for (int i = 1; i < rownum; i++) {
                Row row=  sheet.getRow(i);
                /*获取每一行的列数   添加到pd中*/
                for (int j = 0; j < row.getLastCellNum(); j++) {
                    pd.put(key.get(j),row.getCell(j).toString());
                }
                System.out.println(pd);
                /*将取出来的数据添加到数据库中*/
                 //这里将取出的数据存到excel中

            }

            System.out.println("插入完成");


        } catch (Exception e) {
            e.printStackTrace();
        }

3.vue

上传文件的el-upload从element官网找到的这个组件在这里插入代码片

<el-upload
      ref="upload"//
      :on-preview="handlePreview"//
      :on-remove="handleRemove"//
      :before-remove="beforeRemove"//
      :limit="1"//属性上传文件的数量
      :on-exceed="handleExceed"//绑定如果超出了这个规定的数量调用的函数
      :file-list="file"//
      :auto-upload="false"//自动上传
      action=""//这里写上传的后台的路径
      enctype="multipart/form-data"//是指用于有文件上传 设置mime格式
      accept=".xls,.xlsx" //控制文件的类型
      multiple>//是指用于有文件上传 设置mime格式
      <el-button slot="trigger" size="small" type="primary">选取文件</el-button>

      <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传</el-button>
      <!--文本格式的提示使用该组件-->
      <div slot="tip" class="el-upload__tip">选取xlsx/xls文件,且不超过10M</div>
    </el-upload>
    //上传文件的函数
    refreshChange() {
                this.getList(this.page)
            },

这些属性官网都有可以通过element官网查找到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值