java 解析文档如excel等的工具类Tika

1 篇文章 0 订阅

Apache Tika 是一个内容分析工具包,可以检测上千种文件类型,并提取它们的元数据和文本。tika在设计上十分精巧,单一的接口使它易于使用,在搜索引擎索引,内容分析,翻译等诸多方面得到了广泛使用。

如解析文件是否是excel类型等

目录

使用

MultipartFile类转File类

参考:


一、使用

使用举例,判断文档是否是excel

 <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>1.24.1</version>
 </dependency>

注意tika-core和tika-parsers的区别,我这里导入的是tika-core

核心使用:

  //文档是excel,所以只能是xlsx或xls类型
  public String judgeType(MultipartFile mFile){
        Tika tika = new Tika();
        String detect=null;
        File file = new File(mFile.getOriginalFilename());
        try {
            FileUtils.copyInputStreamToFile(mFile.getInputStream(), file);
            //重点代码,获得文件类型
            detect = tika.detect(file);
            System.out.println("文档类型");
            System.out.println(detect);
            if ("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(detect) || "application/vnd.ms-excel".equals(detect)){
                return "类型正确";  //类型正确
            }else {
                return "请上传正确的文档类型,如:.xlsx和.xls";
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (file.exists()) {
                file.delete();
            }
        }
        // 会在本地产生临时文件,用完后需要删除
        if (file.exists()) {
            file.delete();
        }
        return "文档解析错误";
    }

二、MultipartFile类转File类

其中,前端传过来的是MultipartFile类,所以后端要转换为File类,转换方法为

//MultipartFile转File
File file = new File(path); 
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);  

/*其中File可以
  File file = new File(mFile.getOriginalFilename());
  这是保存在了工程路径下,用完要删除
  file.delete();
*/


//File转MultipartFile
File file = new File("src/test/resources/input.txt");
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile =new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input));

三、参考:

Tika:一个强大的Java文档内容解析工具(主要参考之一,必看)

Apache Tika实战(主要参考之一,必看)

常用文件的mime和mimetype的对应关系

apache tika判断文件类型(只需要参考它后面的文档类型)

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值