Java Word提取内容

这篇具有很好参考价值的文章主要介绍了Java Word提取内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
    		<groupId>cn.hutool</groupId>
  		    <artifactId>hutool-all</artifactId>
 		    <version>5.8.16</version>
		</dependency>
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * word文档提取文字集合
 */
@Slf4j
public class Word2ListUtil {
    /**
     * word文档提取文字集合
     */
    public static List<String> word2List(String filePath) throws IOException {
        XWPFWordExtractor extractor = null;
        FileInputStream fis = null;
        InputStream inputStream = null;
        File file = null;
        try {
            // 获取云存储Word文档输入流
            inputStream = HttpUtil.createGet(filePath).execute().bodyStream();
            // 创建临时文件
            File tempFile = File.createTempFile("tmp", ".doc");
            // 将输入流写入临时文件
            file = FileUtil.writeFromStream(inputStream, tempFile);
            log.info("临时文件所在路径: {}", file);
            // 输入流转文件输入流
            fis = new FileInputStream(file);
//            fis = new FileInputStream(filePath);
            XWPFDocument document = new XWPFDocument(fis);
            // 提取文本内容
            extractor = new XWPFWordExtractor(document);
            // 特殊操作:将文本内容中所有中文字符转成英文并去掉空格
            String text = extractor.getText().replaceAll(":", ":")
                    .replaceAll("。", ".")
                    .replaceAll(" ", "")
                    .replaceAll(";", ";")
                    .replaceAll(",", ",");
            // 文本根据换行符分割数组
            String[] textArray = text.split("\n");
            // 去掉数组内空串行并组装集合
            return Arrays.stream(textArray).filter(str -> !str.trim().isEmpty()).collect(Collectors.toList());
        } catch (Exception e) {
            log.error("word文档提取文字集合失败异常! {}", e.getMessage());
            e.printStackTrace();
        } finally {
        	// 资源关闭遵循:先开后关原则
            if (ObjectUtil.isNotNull(extractor)) {
                extractor.close();
            }
            if (ObjectUtil.isNotNull(fis)) {
                fis.close();
            }
            if (ObjectUtil.isNotNull(inputStream)) {
                inputStream.close();
            }
            if (ObjectUtil.isNotNull(file)) {
            	// 删除临时文件
                boolean deleteFlag = file.delete();
                log.info("临时文件删除状态: {}", deleteFlag);
            }
        }
        return null;
    }
}

文章来源地址https://www.toymoban.com/news/detail-548040.html

到了这里,关于Java Word提取内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java POI导出富文本的内容到word文档

    当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的。 如:h1标题头/h1h2第二个标题/h2a href=\\\"www.baidu.com\\\"百度搜索/a 我们想把富文本数据转换为Word内容。 Word是完全支持html标签的,但是我们获取到的富文本内容并不是完整的html代码,所有我们需要先补全

    2024年02月09日
    浏览(38)
  • 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

    这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarker工具类 (3)测试案例代码 (4)运行效果 Word文件有两种后缀格式,分别是:doc和docx,

    2024年02月13日
    浏览(45)
  • Java中word转Pdf工具类

    背景:     最近做的一个项目中,对于word转Pdf用的地方很多,特此记录 搭建总图:  代码部分:  1.需要的jar包: 注:下载好这个jar包后,在项目的根目录新建一个lib文件夹,然后放入该jar包 pom.xml中引用   2.需要的xml文件 内容:  注:将该xml文件放到resources下面  3.工具

    2024年02月11日
    浏览(26)
  • Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    一、写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介绍一下应用场景:这次项目依旧是springboot项目,使用ftl模版生

    2024年02月15日
    浏览(42)
  • Java实现Word文档转PDF,PDF转Word,PDF转Excel,PDF转换工具

    java实现word文档转PDF,PDF转word 解决只能转换4页问题 解决每页头部存在水印问题 引入依赖 破解的jar包 链接: https://pan.baidu.com/s/1MO8OBuf4FQ937R9KDtofPQ 提取码: 4tsn 源码路径:https://download.csdn.net/download/weixin_43992507/88215577 像流读取文件这些要关闭释放,不然异常报错文件的读取不会

    2024年02月13日
    浏览(37)
  • 利用python工具提取多个word中的图片和表格

    由于工作因素,经常要对多个文档内容进行查重,文字类可以借助查重工具辅助,但图片和表格只能依靠鼠标滚轮还有笔者的打工眼。久而久之,眼睛废了,肩颈也吃不消了(-.-)。于是乎,就想用脚本批量导出,从而提高效率。 笔者非软件专业,所以只能请ChatGPT当导师了

    2024年02月08日
    浏览(34)
  • Java的XWPFTemplate工具类导出word.docx的使用

    代码 模板使用{{占位符}} 图片{{@占位符}} 换行n 读取文字:{{?photoCollection}}{{pho}}{{/photoCollection}} 读取照片:{{?photoCollection}} {@{pho}} {{/photoCollection}} 特别注意:读取照片的时候需要有一个空格才会显示,找了好久的问题,最后加一个空格解决了

    2024年01月20日
    浏览(32)
  • 用Java实现Word文件转PDF工具,兼容Linux

    主要使用了pdfbox Apache PDFBox | A Java PDF Library以及spire.doc Free Spire.Doc for Java |  Java Word 组件 (e-iceblue.cn)两个工具包 最近在做根据模板生成word文档,等wrod生成好后,人家又要pdf文件,索性将生成的wrod转pdf。也有使用documents4j进行转换,但是documents4j是依赖offic组件的,只适配Win

    2024年02月12日
    浏览(54)
  • Java版Word开发工具Aspose.Words基础教程:检测文件格式并检查格式兼容性

    Aspose.Words for Java是功能丰富的文字处理API,开发人员可以在自己的Java应用程序中嵌入生成,修改,转换,呈现和打印Microsoft Word支持的所有格式的功能。它不依赖于Microsoft Word,但是它提供了Microsoft Word通过其API支持的功能。 Aspose.Words for Java最新下载 https://www.evget.com/product/

    2024年02月14日
    浏览(38)
  • word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)

    批量生成word文档是让人无比厌恶但有时又不得不做的事情。比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有“姓名”、“学院”和“专业”不同,其他内容都相同的word文档以供打印(事实上直接生成pdf是更好的选择,这个以后有心情可以弄一下)。 要实

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包