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");

    }
}
相关推荐
join81 分钟前
解决vue-pdf的签章不显示问题
javascript·vue.js·pdf
小行星1257 分钟前
前端把dom页面转为pdf文件下载和弹窗预览
前端·javascript·vue.js·pdf
武子康14 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康16 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
苏-言23 分钟前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
界面开发小八哥30 分钟前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具
草莓base43 分钟前
【手写一个spring】spring源码的简单实现--容器启动
java·后端·spring
Allen Bright1 小时前
maven概述
java·maven
编程重生之路1 小时前
Springboot启动异常 错误: 找不到或无法加载主类 xxx.Application异常
java·spring boot·后端
薯条不要番茄酱1 小时前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea