利用Java读取Word表格中文本和图片的方法实例

网友投稿 441 2022-10-13


利用Java读取Word表格中文本和图片的方法实例

目录1. 程序环境准备Jar导入步骤及方法:方法1:手动导入。方法2:Maven仓库导入。2. java代码3. 文本、图片读取效果总结

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

1. 程序环境准备

代码编译工具:IntelliJ IDEA

Jdk版本:1.8.0

测试文档:Word .docx 2013

Jar包:free spire.doc.jar 3.9.0

用于测试的Word文档如下:

Jar导入步骤及方法:

方法1:手动导入。

打http://开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的依赖,然后下载导入。具体配置如下:

com.e-iceblue

http://repo.e-iceblue.cn/repository/maven-public/

e-iceblue

free.spire.doc

3.9.0

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.imaghttp://eio.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);

//创建List

List 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

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

文本数据读取结果:

图片读取结果:

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:视频融合云服务平台EasyCVR优化“加载中...”浏览器title的实现方式
下一篇:流量计数据如何无线远传至控制设备?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~