本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片。下面是具体实现的步骤和方法。

1. 程序环境准备

  • 代码编译工具:IntelliJ IDEA
  • Jdk版本:1.8.0
  • 测试文档:Word .docx 2013
  • Jar包:free spire.doc.jar 3.9.0

用于测试的Word文档如下:

Jar导入步骤及方法:

方法1:手动导入。打开Project Structure(Shift+Ctrl+Alt+S)界面,选择【Modules】—【Dependencies】,点击“+”,【JARs or directories…】,选择本地路径中的jar包,添加后,勾选,点击“OK”或者“Apply”导入jar。

方法2:Maven仓库导入。需在pom.xml文件中配置maven路径并指定free spire.doc.jar 3.9.0的依赖,然后下载导入。具体配置如下:

<repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories>
<dependencies><dependency><groupId> e-iceblue </groupId><artifactId>free.spire.doc</artifactId><version>3.9.0</version></dependency>
</dependencies>

2. Java代码

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.interfaces.ITable;import javax.imageio.ImageIO;
import java.awt.image.RenderedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class GetTable {public static void main(String[] args)throws IOException {//加载Word测试文档Document doc = new Document();doc.loadFromFile("inputfile.docx");//获取第一节Section section = doc.getSections().get(0);//获取第一个表格ITable table = section.getTables().get(0);//创建txt文件(用于写入表格中提取的文本)String output = "ReadTextFromTable.txt";File textfile = new File(output);if (textfile.exists()){textfile.delete();}textfile.createNewFile();FileWriter fw = new FileWriter(textfile, true);BufferedWriter bw = new BufferedWriter(fw);//创建ListList images = new ArrayList();//遍历表格中的行for (int i = 0; i < table.getRows().getCount(); i++){TableRow row = table.getRows().get(i);//遍历每行中的单元格for (int j = 0; j < row.getCells().getCount(); j++){TableCell cell = row.getCells().get(j);//遍历单元格中的段落for (int k = 0; k < cell.getParagraphs().getCount(); k++){Paragraph paragraph = cell.getParagraphs().get(k);bw.write(paragraph.getText() + "\t");//获取文本内容//遍历段落中的所有子对象for (int x = 0; x < paragraph.getChildObjects().getCount(); x++){Object object = paragraph.getChildObjects().get(x);//判定对象是否为图片if (object instanceof DocPicture){//获取图片DocPicture picture = (DocPicture) object;images.add(picture.getImage());}}}}bw.write("\r\n");//写入内容到txt文件}bw.flush();bw.close();fw.close();//将图片以PNG文件格式保存for (int z = 0; z < images.size(); z++){File imagefile = new File(String.format("提取的表格图片-%d.png", z));ImageIO.write((RenderedImage) images.get(z), "PNG", imagefile);}}
}

3. 文本、图片读取效果

完成代码编辑后,执行程序,读取表格中的文本数据和图片。代码中的文件路径为IDEA项目文件夹路径,如:

C:\Users\Administrator\IdeaProjects\Table_Doc\ReadTextFromTable.txt

C:\Users\Administrator\IdeaProjects\Table_Doc\提取的表格图片-0.png

C:\Users\Administrator\IdeaProjects\Table_Doc\inputfile.docx

在代码中,文件路径可自定义为其他路径。

文本数据读取结果:

图片读取结果:

—End—

Java 读取Word表格中的文本和图片相关推荐

  1. Java 读取Word批注中的文本和图片

    本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片.下面将通过Java代码来演示如何读取批注. **工具使用:**Word类库(Free Spire.Doc for Java 免费版 ...

  2. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...

    Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...

  3. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  4. Java获取word表格中的数据

    前言: 有时系统中需要提取各种文件中的数据,比如做报表的系统中就常常与Excel表格数据做交互.做Excel报表数据时有选择POI实现的,但是POI功能也很单一,对于文档格式维护性差,最重要的是POI ...

  5. Java向word表格中添加新行并赋值

    前言: 相信大家都有过操作word文档表格的经历,对于每行数据的记录与操作是比较方便的.但这是不够的,对于一些OA项目,则需要在线打开word文档并通过后台的设置将数据添加到word表格中,甚至对表格 ...

  6. java 读取word 表格,实战 | JAVA读取WORD,包含表格。

    业务需求 我们有这样一个需求,需要抽取出WORD文档中的内容,然后组装成特定的json格式发送给第三方引擎接口,输入协议如下: { "tables": [ { "cell ...

  7. 有选择读取word表格中的数据并写入excel文件中

    最近学院要举行科技报告会活动,许多同学积极参与,交了许多报名表到我这里,而我需要将这些信息进行汇总,整理出一个excel表格,看着一个个word文件放在我的工作文件夹中头发发麻,这一个个的整理好麻烦, ...

  8. Java替换Word模板中的文字、图片、表格、水印

    前言 由于业务需求,要求开发一个工具类,需要对Word模板中的内容进行替换,并且支持插入图片.根据业务生成自定义表格,以及对处理后的文件增加水印,处理完的文件支持保存doc.docx.pdf格式 1. ...

  9. Java 读取EXCEL表格中的数据,将数据转为SQL语句

    参考文档 一.需求 存在一个camera表,表中有一个字段叫点位编号,现需要修改该点位编号,用户提供了一个execl表,如下图所示,第2列为原编号,第5列为现编号: 二.解决思路 编码读取execl表 ...

最新文章

  1. 硅谷顶级VC:“S曲线”看四大风口,创企成功机会巨大
  2. 测量左右磁极的原片磁铁
  3. 【赠书】深入浅出Python量化交易实战
  4. 证书访问_3+证书|高考注册页面可访问,具体流程看这里!
  5. python restful 框架_restful-dj
  6. Google Chrome Native Messaging开发实录(一)背景介绍
  7. 从DevOps到Cloud Native,应用上云姿势全解锁 1
  8. silverlight 中缓存应用程序相应的库文件
  9. 《工业元宇宙白皮书 2022年 》(附免费pdf下载地址)
  10. oracle查看脚本,oracle 查看表空间的脚本
  11. 模式识别和机器学习的区别
  12. 通过路由器设置,不用IPTV盒子,局域网内、局域网外任意设备随时随地观看网络电视直播
  13. Python找不到的包从pip官网下载,以windows-filedialogs为例
  14. 查看elasticserc版本_Elasticsearch版本和客户端介绍
  15. 源支付5.18源码/三网免挂/带云端/附源码搭建教程
  16. 【Python】多进程 AttributeError: Can‘t pickle local object
  17. flv视频合并(vs2008)
  18. 百度,阿里,搜狐公司社招面试题及总结
  19. 嵌入式开发——Linux操作系统
  20. hammer.js教程2

热门文章

  1. 加密硬件货币钱包-市场现状及未来发展趋势
  2. Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)
  3. cuteftp不能连接虚拟机的解决方法
  4. 防止记录丢失,保存QQ聊天记录文件的方法
  5. 小米9将正式更新android q,小米又良心一波,小米9用户将迎九大更新,Android Q即将到来...
  6. win11照片一打开就是打印怎么办?
  7. 测试工作3年还在基础岗?可能只是因为你的工作能力差
  8. git(9)Git 内部原理,java入门视频百度网盘
  9. Wrashall算法,自反性,对称性的实现
  10. java 银行卡支付_Java学习:用接口简单实现银行卡系统