java poi 页数_java word 获取每个表格所在的页码 (利用POI+pdf)

使用Java Apache POI库解析Word文档,获取每个表格的页码信息,存储到Map中,然后更新文档中表格页码的文本,实现动态更新Word表格页码的功能。
摘要由CSDN通过智能技术生成

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import org.apache.poi.xwpf.usermodel.XWPFRun;

import org.apache.poi.xwpf.usermodel.XWPFTable;

import org.apache.poi.xwpf.usermodel.XWPFTableCell;

import org.apache.poi.xwpf.usermodel.XWPFTableRow;

public class WordTablePages2 {

public static void main(String[] args) throws Exception {

String sourceFile = "E:/nctcFile/报告/dengji.docx";

String targetFile = "E:/nctcFile/报告/result.docx";

// mergeColumeAndRow(sourceFile, targetFile);

// setPageOfTable();

// setWordTotalPage(null,null);

// mergeColumeAndRow(sourceFile, targetFile);

setPagesInTable(sourceFile, targetFile);

// getRepeatTableHeader(sourceFile);

}

/*

* 设置文档中的表格占页

*/

public static void setPagesInTable(String sourceFile, String targetFile) {

//获取每个表格的占页信息,存到一个map中

Map pageMap = new HashMap();

pageMap = WordTablePages2.getPagesInTable(sourceFile, targetFile);

/*

* 从后往前,开始赋值

* 然后生成最后的目标文件

*/

try {

XWPFDocument doc = new XWPFDocument(new FileInputStream(sourceFile));

List doctables = doc.getTables();

for(int i = doctables.size() -1; i >=0; i--) {

for(XWPFTableCell cell : doctables.get(i).getRow(0).getTableCells()) {

if(cell.getText().contains("第table") && cell.getText().contains("页")) {//找到“第table几页”

int start = cell.getText().indexOf("第");

int end = cell.getText().indexOf("页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值