PDF读取表格写入EXCEL

声明:只记录,不推荐,因为e-iceblue的spire.pdf是收费的,要licence。

pom引入

XML 复制代码
<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.pdf</artifactId>
            <version>10.7.3</version>
        </dependency>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls</artifactId>
            <version>14.7.7</version>
        </dependency>

demo代码:

java 复制代码
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.utilities.PdfTable;
import com.spire.pdf.utilities.PdfTableExtractor;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
/**
 * @className: PDF2ExcelUtil
 * @description:
 * @author: spirit
 * @date: 2024-09-05 10:20
 * @version: 1.0
 **/

public class PDF2ExcelUtil {

    public static void convertPDF(){
        //创建PdfDocument实例
        PdfDocument pdf = new PdfDocument();

        //加载PDF文档
        pdf.loadFromFile("E:/xxx-已加密.pdf","123");

        //保存为Excel
        pdf.saveToFile("E:/PDFToXLS.xlsx", FileFormat.XLSX);
    }
    public static void main(String[] args) {
        //创建PdfDocument实例
        PdfDocument pdf = new PdfDocument();

        //加载PDF文档
        pdf.loadFromFile("E:/xxx-已加密.pdf","123");


        //实例化Workbook类的对象
        Workbook workbook = new Workbook();
        //清除默认工作表
        workbook.getWorksheets().clear();

        //实例化PdfTableExtractor类的对象
        PdfTableExtractor extractor = new PdfTableExtractor(pdf);

        int sheetNumber = 1;

        //遍历PDF页面
        for (int pageIndex = 0; pageIndex < pdf.getPages().getCount(); pageIndex++) {
            //提取页面中的表格存入PdfTable[]数组
            PdfTable[] tableList = extractor.extractTable(pageIndex);
            if (tableList != null && tableList.length > 0) {
                //遍历表格
                for (PdfTable table : tableList) {
                    //添加工作表
                    Worksheet sheet = workbook.getWorksheets().add("Sheet" + sheetNumber);

                    //获取表格的行数和列数
                    int row = table.getRowCount();
                    int column = table.getColumnCount();

                    //遍历行和列
                    for (int i = 0; i < row; i++) {
                        for (int j = 0; j < column; j++) {
                            //获取表格单元格中的文本内容
                            String text = table.getText(i, j);

                            //将获取的文本写入Excel工作表
                            sheet.get(i + 1, j + 1).setValue(text);
                        }
                    }
                    sheetNumber++;
                }
            }
        }

        //将工作簿保存为Excel文件
        workbook.saveToFile("E:/xxx-已加密.xlsx");

    }
}
相关推荐
缘友一世1 分钟前
mac系统安装最新(截止2024.9.13)Oracle JDK操作记录
java·macos·oracle
跃ZHD12 分钟前
BolckingQueue
java
西岭千秋雪_20 分钟前
谷粒商城のElasticsearch
java·大数据·服务器·spring boot·elasticsearch·搜索引擎
白手小弟43 分钟前
docker部署Stirling-PDF
docker·容器·pdf
yueqingll1 小时前
020、二级Java选择题综合知识点(持续更新版)
java·开发语言
咔咔学姐kk1 小时前
2024最新版,人大赵鑫老师《大语言模型》新书pdf分享
数据库·人工智能·语言模型·自然语言处理·pdf·知识图谱·产品经理
zhang-ge1 小时前
python提取pdf表格到excel:拆分、提取、合并
python·pdf·excel
许野平1 小时前
Rust:深入浅出说一说 Error 类型
java·开发语言·rust·error
jingling5551 小时前
后端开发刷题 | 数字字符串转化成IP地址
java·开发语言·javascript·算法
茜茜西西CeCe2 小时前
大数据处理技术:HBase的安装与基本操作
java·大数据·数据库·hbase·头歌·大数据处理技术