EasyExcel 将Excel文档上传至MinIO

本文档展示了如何在SpringBoot应用中利用Maven依赖MinIO和commons-fileupload来搭建文件服务器,以及结合EasyExcel进行数据导出并上传到MinIO。通过调试代码,成功实现了从内存中生成的Excel文件上传到MinIO服务的过程,并提供了PostMan和MinIO服务的调试结果。参考提供的博客链接,可以了解详细的SpringBoot配置MinIO的步骤。
摘要由CSDN通过智能技术生成

1 Maven依赖

        <!--MinIO文件服务器-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>7.0.2</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>

2 调试代码

    /**
     * 导出(上传至MinIO)
     *
     * @param response
     */
    @GetMapping("/exportToMinIO")
    public String exportToMinIO(HttpServletResponse response) {
        try {
            //生成表格数据
            List<List<Object>> dataList = new ArrayList<>();
            dataList.add(new ArrayList<>(Arrays.asList(new Object[]{"表头11", "表头2", "表头3", "表头4"})));
            dataList.add(new ArrayList<>(Arrays.asList(new Object[]{"表头17777777777", "表头2", "表头3", "表头4444"})));
            dataList.add(new ArrayList<>(Arrays.asList(new Object[]{"表头31", "表头2", "表头3", "表头4"})));
            //导出文件
            String fileName = new String("文件名称.xlsx".getBytes(), "UTF-8");
            response.addHeader("Content-Disposition", "filename=" + fileName);
            //设置类型
            response.setContentType("application/octet-stream");
            //XWPFDocument转FileItem
            FileItemFactory factory = new DiskFileItemFactory(16, null);
            FileItem fileItem = factory.createItem("textField", "text/plain", true, fileName);
            try {
                OutputStream os = fileItem.getOutputStream();;
                ExcelWriter excelWriter = EasyExcel.write(os).build();
                WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
                excelWriter.write(dataList, writeSheet);
                //千万别忘记finish 会帮忙关闭流
                excelWriter.finish();
                os.close();
                //FileItem转MultipartFile
                MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
               return minIOService.uploadFile(minIOService.getMinioClient(),multipartFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

3 调试结果

3.1 PostMan调试结果

3.2 MinIO调试结果

 

 3.3 文档内容

注:

 MinIOService的源码请查看以下博客。

Spring Boot配置MinIO(实现文件上传、下载、删除)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用EasyExcel提供的读取Excel文件数据的功能,将数据读取到Java程序中,然后再使用JDBC将数据插入到数据库中。 以下是一个示例代码,演示如何使用EasyExcelExcel文件中的数据导入到MySQL数据库中: ```java // 读取Excel文件数据 String fileName = "example.xlsx"; List<DemoData> dataList = new ArrayList<>(); EasyExcel.read(fileName, DemoData.class, new DemoDataListener(dataList)).sheet().doRead(); // 将数据插入到数据库 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; String username = "root"; String password = "password"; String sql = "INSERT INTO demo_data (id, name, age) VALUES (?, ?, ?)"; try (Connection conn = DriverManager.getConnection(url, username, password); PreparedStatement pstmt = conn.prepareStatement(sql)) { for (DemoData data : dataList) { pstmt.setInt(1, data.getId()); pstmt.setString(2, data.getName()); pstmt.setInt(3, data.getAge()); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } ``` 其中,`DemoData`是一个Java类,用于存储Excel文件中的数据。`DemoDataListener`是一个实现了EasyExcel监听器接口的类,用于处理读取Excel文件时的事件。在`DemoDataListener`的`invoke`方法中,将读取到的数据存储到`dataList`中。 在上述代码中,使用JDBC连接MySQL数据库,并将数据插入到`demo_data`表中。你需要根据自己的实际情况修改数据库连接信息和SQL语句。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值