马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- package org.springblade;
- import com.spire.doc.Document;
- import com.spire.doc.Section;
- import com.spire.doc.TableCell;
- import com.spire.doc.TableRow;
- 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.HashMap;
- import java.util.List;
- public class GetTable {
- public static void main(String[] args)throws IOException {
- //加载Word测试文档
- Document doc = new Document();
- doc.loadFromFile("E:\\测试导入\\导入模板.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();
- HashMap<String, Object> photoMap = new HashMap<>();
- //遍历表格中的行
- 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());
- //得到当前表格的行和列
- String photoName = String.format("第%s行第%s列的图片.png", i + 1, j);
- photoMap.put(photoName,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);
- // }
- for (String s : photoMap.keySet()) {
- File imageFile = new File(s);
- ImageIO.write((RenderedImage) photoMap.get(s), "PNG", imageFile);
- }
- }
- }
复制代码 在此之前必须引入maven
- <dependency>
- <groupId>e-iceblue</groupId>
- <artifactId>spire.doc.free</artifactId>
- <version>5.2.0</version>
- </dependency>
- <repositories>
- <repository>
- <id>com.e-iceblue</id>
- <name>e-iceblue</name>
- <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
- </repository>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |