前言
Java通过Aspose.Words操作Word文件
添加依赖
pom.xml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <repositories> <repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://releases.aspose.com/java/repo/</url> </repository> </repositories>
<dependencies> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>23.4</version> <classifier>jdk17</classifier> </dependency> </dependencies>
|
引入依赖
1
| import com.aspose.words.*;
|
Document对象
通过文件路径创建Document对象
<file>.docx:读取的Word文件
1
| Document document = new Document("<file>.docx");
|
获取文档总页数
1
| int pageCount = document.getPageCount();
|
获取所有段落
1 2 3 4 5
| NodeCollection paragraphList = document.getChildNodes(NodeType.PARAGRAPH, true);
for (Paragraph paragraph : (Iterable<Paragraph>) paragraphList) { System.out.println(paragraph.getRange().getText()); }
|
获取所有表格
1 2 3 4 5 6 7 8 9 10
| NodeCollection tables = document.getChildNodes(NodeType.TABLE, true);
for (Table table : (Iterable<Table>) tables) { for (Row row : table.getRows()) { for (Cell cell : row.getCells()) { System.out.print(cell.getRange().getText() + "\t"); } System.out.println(); } }
|
获取元素所在页码
1 2 3 4
| LayoutCollector layoutCollector = new LayoutCollector(document);
int paragraphPageNumber = layoutCollector.getStartPageIndex(paragraph); int paragraphPageNumber = layoutCollector.getStartPageIndex(table);
|
另存为文件
1
| document.save("<file>.docx");
|
DocumentBuilder对象
通过Document对象创建DocumentBuilder对象
1
| DocumentBuilder documentBuilder = new DocumentBuilder(document);
|
移动光标
移动光标到文档末尾
1
| documentBuilder.moveToDocumentEnd();
|
插入数据
插入字符串
插入换行符
1
| documentBuilder.insertBreak(BreakType.PARAGRAPH_BREAK);
|
插入分页符
1
| documentBuilder.insertBreak(BreakType.PAGE_BREAK);
|
完成