Springboot项目文件上传处理——MultipartFile

Java项目三种文件的处理方式

导入jar包

<!-- excel操作  world操作-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.0.0</version>
</dependency>

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.9</version>
</dependency>
1. excel文件处理
    
// excel 文件上传处理方法
    @PostMapping("/test2")
    public void test2(MultipartFile multipartFile,@RequestParam("name") String name){
    
    
        System.out.println(name);

        try {
    
    

            // 1. excel数据获取方式,采用Hutool工具类,获取输入excel文件所以使用的sheet
            Workbook workbook = WorkbookUtil.createBook(multipartFile.getInputStream());
            // 2. 获取全部的sheet总数
            int sheetIndex = workbook.getActiveSheetIndex();
            // 3. 遍历sheet,获取数据,ExcelUtil 工具类是hutool包中的,导入maven依赖方式如下图
            /**
             * <dependency>
             *     <groupId>cn.hutool</groupId>
             *     <artifactId>hutool-all</artifactId>
             *     <version>5.8.9</version>
             * </dependency>
             */
            for (int i = 0; i <sheetIndex; i++) {
    
    
                // 读取文件
                ExcelReader reader = ExcelUtil.getReader(multipartFile.getInputStream(),i);
                // 读取全部数据,
                List<Map<String, Object>> mapList = reader.readAll();

                // 遍历获取数据,每次获取一行数据
                mapList.forEach(e->{
    
    
                    // 获取列名为接口名的一行数据
                    String collemOne = String.valueOf(e.get("接口名"));
                    // 获取列名为接口地址的一行数据
                    String collemTwo = String.valueOf(e.get("接口地址"));
                    System.out.println(111);
                });
            }

            System.out.println("执行结束");
        } catch (IOException e) {
    
    
            System.out.println("出现异常");
        }
    }
2. txt文件处理
    // txt 文本文件获取方式
    @PostMapping
    public void test1(@RequestBody MultipartFile multipartFile, @RequestParam("id") String id) throws IOException {
    
    

        String name = multipartFile.getName();
        String originalFilename = multipartFile.getOriginalFilename();
        // 读取数据字节,并转换为字符串
        String s = new String(multipartFile.getBytes());
        // 按照行终止符进行切割文本数据
        String[] strings = s.split("\\r");
        System.out.println(name);
    }
3. word 文件处理

// worl 文件上传处理方式
@GetMapping("/test3")
public void test3(MultipartFile multipartFile,@RequestParam("name") String fileName){
    
    
    try {
    
    
        String originalFilename = multipartFile.getOriginalFilename();
        // 判断如果是word文档,则读取文件,否则,返回错误信息
        if (!originalFilename.endsWith(".docx")){
    
    
            System.out.println("请检查上传文档是否为word文档!");
        }
        // 是word文档,以输入流的方式进行读取
        XWPFDocument xwpfDocument = new XWPFDocument(multipartFile.getInputStream());
        XWPFWordExtractor wordExtractor = new XWPFWordExtractor(xwpfDocument);
        // 读取文本信息
        String text = wordExtractor.getText();
        System.out.println("读取的文本信息为: " + text);
        String strText = "我是来测试进行word段落生成,并进行输出的,生成一段字数,超过一行限制,并进行输出到word中,最好能进行首行缩进,已经段落间距,字体等的设置!!!!!";
        // 进行文件写出
        Word07Writer writer = WordUtil.getWriter().addText(new Font("宋体",Font.PLAIN,12),strText);
        writer.flush(FileUtil.file("C:\\Users\\janson\\Desktop\\test3.docx"));
        writer.close();
    } catch (IOException e) {
    
    
        System.out.println("上传文件失败!");
    }
}

postman测试

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42102911/article/details/128374579