java读word_java读word文件(示例代码)

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

1.读取word 2003及word 2007需要的jar包

读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:  1. openxml4j-bin-beta.jar  2. poi-3.5-beta6-20090622.jar  3. poi-ooxml-3.5-beta6-20090622.jar  4 .dom4j-1.6.1.jar  5. geronimo-stax-api_1.0_spec-1.0.jar  6. ooxml-schemas-1.0.jar  7. xmlbeans-2.3.0.jar 其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。

2.换行符号

硬换行:文件中换行,如果是键盘中使用了"enter"的换行。

软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。

对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。

3.读取的注意事项

值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。

4.读取word文本内容代码

lazy.gif

1 importjava.io.File;

2 importjava.io.FileInputStream;

3 importjava.io.InputStream;

4

5 importorg.apache.poi.POIXMLDocument;

6 importorg.apache.poi.POIXMLTextExtractor;

7 importorg.apache.poi.hwpf.extractor.WordExtractor;

8 importorg.apache.poi.openxml4j.opc.OPCPackage;

9 importorg.apache.poi.xwpf.extractor.XWPFWordExtractor;

10

11 public classTest {

12 public static voidmain(String[] args) {

13 try{

14 InputStream is = new FileInputStream(new File("2003.doc"));

15 WordExtractor ex = newWordExtractor(is);

16 String text2003 =ex.getText();

17 System.out.println(text2003);

18

19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");

20 POIXMLTextExtractor extractor = newXWPFWordExtractor(opcPackage);

21 String text2007 =extractor.getText();

22 System.out.println(text2007);

23

24 } catch(Exception e) {

25 e.printStackTrace();

26 }

27 }

28 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo调用远程服务详解_导入jar方式

Dubbo调用远程服务 1.创建公共接口模块api 公共接口主要用于存放接口对象,这里我们只创建一个服务层的接口IndexService用于远程调用服务的测试 package com.example.dubboapi.service;public interface IndexService {String echo(); }

Dubbo SpringBoot+Dubbo泛化的使用,以及开发时直连本地的Dubbo服务(Dubbo指定点对点调用服务)

​ 一般情况我们使用dubbo)通过rpc调用dubbo提供方的服务,首先要在消费者的项目中引入接口提供者的jar包(provider端暴露的接口和方法),然后使用jar包里面的类和方法,两端才能正常通信调用。但是如果要调N个不同服务提…

java string... 参数_Java String.Format() 方法及参数说明

JDK1.5中,String类新增了一个很有用的静态方法String.format():format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字…

Unity3D VS UE4

Unity3D(U3D) 1.视觉效果:Unity3D相对UE4略逊、手机3D应用、3D游戏轻量级首选,支持跨平台、设备兼容性更好 2.产品力:Unity3D更加多元化,各平台都有代表作,比如《王者荣耀》《炉石传说》《纪念…

SpringBoot读取resource或template中的文件

Spring-Boot读取resource或template中的文件 1.项目场景: 以jar包方式部署系统,想读取resource或是template下面的文件时,报 File Not Found 我遇到的情况是,整个项目达成了一个包,在开发环境(windows i…

关于使用this.getClass().getResource(“/“)获取文件时遇到的坑_ClassPathResource加载资源文件用法

最近在工作中遇到需要读取配置文件,然后第一想法就是将文件放到项目的resources目录下, 然后使用: String fileName "config/zh.md" String path this.getClass().getResource("/").getPath() fileName; System.out.println(p…

Objects.requireNonNull( )方法说明

Objects.requireNonNull( )方法在java.util.Objects中 作用就是判断一个对象是否为空 底层源码&#xff1a; /* param obj 需要检测是否为空的对象* param <T> 对象类型* return 对象不为空则返回该对象* throws 对象为空则报NullPointerException异常*/public static …

数据模型 同比 环比_同比和环比计算公式?

一、同比增长计算公式&#xff1a; 1、同比增长率(本期数&#xff0d;同期数)同期数100% 例子&#xff1a;比如说去年3月的产32313133353236313431303231363533e4b893e5b19e31333365666237值100万&#xff0c;本年3月的产值300万&#xff0c;同比增长率是多少&#xff1f; 本…

SimpleDateFormat的线程不安全问题

一、前言 日期的转换与格式化在项目中应该是比较常用的了 一个问题&#xff1a;项目中的日期转换怎么用的&#xff1f;SimpleDateFormat 用过吗&#xff1f;能说一下 SimpleDateFormat 线程安全问题吗&#xff0c;以及如何解决&#xff1f; 回答&#xff1a;平时就是在全局定…

JVM——System.gc、内存溢出、内存泄漏、STW、安全点、安全区域、强软弱虚引用

文章目录①. System.gc()的理解②. 内存溢出(out of Memory)③. 内存泄漏(Memory Leak)④. Stop The World⑤. 多线程中的并行与并发⑥. 垃圾回收的并行、串行、并发⑦. 安全点(Safepoint)⑧. 安全区域(Safe Region)⑨. 引用①. 强引用:不回收②. 软引用: 内存不足即回收③. 弱…

Java——ThreadLocal概述、解决SimpleDateFormat出现的异常、内存泄漏、弱引用、remove方法

文章目录①. ThreadLocal简介①. ThreadLocal是什么②. api介绍③. 永远的helloword④. 通过上面代码总结②. 从阿里ThreadLocal规范开始①. 非线程安全的SimpleDateFormat②. 将SimpleDateFormat定义成局部变量(方案一)③. ThreadLocal 解决日期格式乱码问题④. 阿里规范怎么说…

JPA入门

文章目录JPA概述JPASpring Data JPAJPA注解基础注解EntityTableIdEnumeratedTransientColumnTemporal联合主键注解IdClassEmbeddable和EmbeddedId注解实体之间关联关系注解OneToOneManyToOne和OneToManyRepositoryJPA查询方式DQM&#xff08;定义查询方法&#xff09;使用实例D…

Java8——Stream流操作List排序_List集合中每个对象元素按时间顺序排序

一个学生类的实体类 Data public class Student {private Long id;private String name;private int age;private Double height;public Student(Long id, String name, int age, Double height) {this.id id;this.name name;this.age age;this.height height;}然后我们测…

java线程初始方法三种_Java 多线程 三种实现方式

Java多线程实现方式主要有三种&#xff1a;继承Thread类、实现Runnable接 口、使用ExecutorService、Callable 实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值&#xff0c;只有最后一种Callable是带返回值的&#xff0c;返回结果可以从Future中取出来关于Exe…

java控制层创建websocket_用Java构建一个简单的WebSocket聊天室

前言首先对于一个简单的聊天室&#xff0c;大家应该都有一定的概念了&#xff0c;这里我们省略用户模块的讲解&#xff0c;而是单纯的先说说聊天室的几个功能&#xff1a;自我对话、好友交流、群聊、离线消息等。今天我们要做的demo就能帮我们做到这一点啦&#xff01;&#xf…

Java中Date与 LocalDateTime ,LocalDate之间的转换

Date与LocalDateTime和LocalDate互相转换思路 Date转LocalDateTime和LocalDate都可以通过Date先转换成Instant然后再转换成LocalDateTime和LocalDate&#xff0c;可以按照下图的方式进行转换。LocalDateTime和LocalDate转换成Date也是以Instant为中介来进行转换的。 1&#xff…

Spring-data-jpa入门(一)

啥是JPA 我这个小白没有听说过&#xff0c;全英文名叫Java Persistence API&#xff0c;就是java持久化api&#xff0c;是SUN公司推出的一套基于ORM的规范。 持久化想必如雷贯耳&#xff0c;都2022年了&#xff0c;谁还不用个持久化框架啊&#xff0c;举起mybatis。 ORM呢&a…

struts单例模式 java_Java单例设计模式详细介绍

Java单例设计模式教程中包含了单例模式的定义、特点以及线路安全等问题。单例模式定义&#xff1a;单例模式确保某个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例。在计算机系统中&#xff0c;线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对…

NetBeans、Eclipse 和 IDEA,哪个才是最优秀的Java IDE?

NetBeans、Eclipse 和 IDEA&#xff0c;哪个才是最优秀的Java IDE? 本文将向您介绍三种流行的Java IDE的基本特点&#xff0c;并比较它们的优缺点。 众所周知&#xff0c;集成开发环境(IDE)能够让程序员的日常编程过程&#xff0c;比起直接在文本编辑器上编写代码要容易得多。…

Spring-data-jpa入门(二)

前言 上一节我们讲解了spring-data-jpa最基础的架构和最简单的增删查改的实现&#xff0c;可以发现spring-data-jpa在简单增删查改的实现是非常友好的&#xff0c;甚至根本见不着sql语句的存在&#xff0c;让人直呼NB。 还记得上一节埋的几个坑吗&#xff0c;这一节就先把坑填…