当前位置: 首页 > news >正文

宣传类网站做企业网站怎样做

宣传类网站,做企业网站怎样做,合肥哪里有做网页的地方,新公司网站建设流程在很多企业办公和数据分析的场景中,PDF 中常常存放着报表、清单或统计数据。相比 PDF,CSV 文件 更易于在 Excel 或数据库中进行进一步处理。因此,我们常常需要一种方式,将 PDF 中的表格数据批量抽取并导出为 CSV 文件。 本文将介…

在很多企业办公和数据分析的场景中,PDF 中常常存放着报表、清单或统计数据。相比 PDF,CSV 文件 更易于在 Excel 或数据库中进行进一步处理。因此,我们常常需要一种方式,将 PDF 中的表格数据批量抽取并导出为 CSV 文件。

本文将介绍如何借助 Free Spire.PDF for Java,在 Java 程序中完成 PDF 表格到 CSV 的自动转换。

文章目录

    • 环境准备
    • PDF 表格导出为 CSV:完整流程
      • Step 1: 加载 PDF 文档
      • Step 2: 提取 PDF 表格数据
      • Step 3: 保存为 CSV 文件
      • PDF转CSV完整Java代码示例
    • 进阶扩展
      • 1. 每个表格单独保存
      • 2. 合并所有表格到一个文件
    • 总结


环境准备

在项目中引入 Free Spire.PDF for Java,可以通过 下载 jar 包,或使用 Maven:

<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.free</artifactId><version>9.13.0</version>
</dependency>

PDF 表格导出为 CSV:完整流程

通过 Java 程序结合 Free Spire.PDF,可以实现从 加载 PDF、提取表格、到生成 CSV 文件 的完整自动化流程,下面我们将详细介绍如何实现这个自动化流程。

Step 1: 加载 PDF 文档

首先,创建 PdfDocument 对象并加载需要处理的 PDF 文件:

import com.spire.pdf.*;PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");

Step 2: 提取 PDF 表格数据

Spire.PDF 提供 PdfTableExtractor 类来专门识别表格。
我们识别指定 PDF 页面中的指定表格,然后逐行逐列读取表格内容,并用 StringBuilder 拼接为 CSV 格式。

import com.spire.pdf.utilities.*;
import java.io.*;StringBuilder sb = new StringBuilder();PdfTableExtractor extractor = new PdfTableExtractor(pdf);
// 提取第一页的表格
PdfTable[] tables = extractor.extractTable(0);if (tables != null) {// 获取第一个表格PdfTable table = tables[0];for (int row = 0; row < table.getRowCount(); row++) {for (int col = 0; col < table.getColumnCount(); col++) {sb.append(escapeCsvField(table.getText(row, col)));if (col < table.getColumnCount() - 1) sb.append(",");}sb.append("\n");}
}

这里我们还需要一个工具方法来处理 CSV 中的特殊字符(如逗号、引号):

private static String escapeCsvField(String text) {if (text == null) return "";text = text.replaceAll("[\\n\\r]", "");if (text.contains(",") || text.contains(";") || text.contains("\"")) {text = text.replace("\"", "\"\"");text = "\"" + text + "\"";}return text;
}

Step 3: 保存为 CSV 文件

将拼接好的字符串写入文件,最终得到一个标准的 CSV:

try (Writer writer = new OutputStreamWriter(new FileOutputStream("output/PDFTable.csv"), "UTF-8")) {writer.write(sb.toString());
}
pdf.close();
System.out.println("PDF 表格已成功导出为 CSV。");

PDF转CSV完整Java代码示例

import com.spire.pdf.*;
import com.spire.pdf.utilities.*;import java.io.*;public class PdfToCsvExample {public static void main(String[] args) throws Exception {PdfDocument pdf = new PdfDocument();pdf.loadFromFile("Sample.pdf");StringBuilder sb = new StringBuilder();PdfTableExtractor extractor = new PdfTableExtractor(pdf);PdfTable[] tables = extractor.extractTable(0);if (tables != null) {PdfTable table = tables[0];for (int row = 0; row < table.getRowCount(); row++) {for (int col = 0; col < table.getColumnCount(); col++) {sb.append(escapeCsvField(table.getText(row, col)));if (col < table.getColumnCount() - 1) sb.append(",");}sb.append("\n");}}try (Writer writer = new OutputStreamWriter(new FileOutputStream("output/PDFTable.csv"), "UTF-8")) {writer.write(sb.toString());}pdf.close();System.out.println("PDF 表格已成功导出为 CSV。");}private static String escapeCsvField(String text) {if (text == null) return "";text = text.replaceAll("[\\n\\r]", "");if (text.contains(",") || text.contains(";") || text.contains("\"")) {text = text.replace("\"", "\"\"");text = "\"" + text + "\"";}return text;}
}

转换结果示例

使用Java转换PDF表格为CSV文件

进阶扩展

上面的示例将 所有表格合并到一个 CSV 文件 中。在实际业务中,我们还可能有不同的需求:

1. 每个表格单独保存

如果 PDF 每页包含多个表格,可以为每个表格生成独立的 CSV 文件:

for (int i = 0; i < pdf.getPages().getCount(); i++) {PdfTableExtractor extractor = new PdfTableExtractor(pdf);PdfTable[] tables = extractor.extractTable(i);if (tables != null) {for (int t = 0; t < tables.length; t++) {StringBuilder tableContent = new StringBuilder();PdfTable table = tables[t];for (int row = 0; row < table.getRowCount(); row++) {for (int col = 0; col < table.getColumnCount(); col++) {tableContent.append(escapeCsvField(table.getText(row, col)));if (col < table.getColumnCount() - 1) tableContent.append(",");}tableContent.append("\n");}try (Writer writer = new OutputStreamWriter(new FileOutputStream("output/Page" + i + "_Table" + t + ".csv"), "UTF-8")) {writer.write(tableContent.toString());}}}
}

这样,每个表格会被单独导出,命名为 Page0_Table0.csv 等。

2. 合并所有表格到一个文件

有时我们不想把每个表格拆开保存,而是希望把整份 PDF 中的表格内容都汇总到同一个 CSV 文件中,方便统一分析。下面的示例展示了如何实现:

// 用于合并所有跨页表格的内容
StringBuilder mergedTableContent = new StringBuilder();for (int i = 0; i < pdf.getPages().getCount(); i++) {PdfTableExtractor extractor = new PdfTableExtractor(pdf);PdfTable[] tables = extractor.extractTable(i);if (tables != null) {for (int t = 0; t < tables.length; t++) {PdfTable table = tables[t];for (int row = 0; row < table.getRowCount(); row++) {for (int col = 0; col < table.getColumnCount(); col++) {mergedTableContent.append(escapeCsvField(table.getText(row, col)));if (col < table.getColumnCount() - 1) mergedTableContent.append(",");}mergedTableContent.append("\n");}}}
}// 统一写入一个 CSV 文件
try (Writer writer = new OutputStreamWriter(new FileOutputStream("output/MergedTable.csv"), "UTF-8")) {writer.write(mergedTableContent.toString());
}

运行后,PDF 中的所有表格会被逐一读取并写入 同一个 CSV 文件,文件路径为 output/MergedTables.csv

总结

本文介绍了如何在 Java 中使用 Free Spire.PDF for Java 将 PDF 中的表格内容导出为 CSV 文件。整体流程分为:

  1. 加载 PDF 文档
  2. 提取表格数据
  3. 写入 CSV 文件

并扩展了 分表导出合并导出 两种常见应用场景。

这种方式可以高效处理 PDF 报表、财务清单、问卷统计等数据,极大减少人工操作的工作量。

更多功能与案例请参考:Spire.PDF for Java 教程中心

http://www.dtcms.com/a/416282.html

相关文章:

  • 百度上如何创建自己的网站有哪些下载软件的应用
  • Jetson Xavier NX踩坑
  • 建筑培训学校珠海网站推广优化
  • 南京网站开发个人wordpress模板在哪
  • 2025_TypeScript
  • 建立网站建设考核激励制度英文网站模板cms
  • 离线网页,选择文件,批量计算MD5(版本V2)
  • github下载量统计 - GithubReleaseStats.exe(Wrtie by Qt)
  • 【从零构建LLM】第二章,embeddbing构建思路总结
  • 如何选网站空间搬瓦工建设wordpress
  • 黑龙江省城乡和住房建设厅网站网站关键字 怎么设置
  • 做网站需要什么开发语言用阿里云服务器搭建wordpress
  • 网站的子域名服饰技术支持 东莞网站建设
  • 自助建站系统官方版网站建设广州哪家好
  • 9月27日星期六今日早报简报微语报早读
  • 网站后台模板安装显示不了网站服务器怎么配
  • 交互设计要学什么seo的排名机制
  • 企业网站如何做排名网站页面太多是否做静态
  • 自己做的微信网站经常被停止访问马鞍山做网站的公司
  • 沧州网站制作的流程php网站后台密码忘记
  • 珠海制作公司网站wordpress 文章不显示没有图片
  • 网站开发安全小贴士wordpress 4.2.2
  • 网站必须备案wordpress做网盘资源
  • 中英文的网站怎么建设福建最大的网络公司排名
  • 佰汇康网站建设自己做的网页怎么上传到网站吗
  • 高速信号/PCB过孔搭桥/回流路径
  • wordpress 建网站网页美工设计第一步需要做什么
  • 淘宝网站建设可行性分析东莞寮步最新通知
  • Python动漫可视化大屏系统 Flask+MySQL+Echarts 番剧数据分析 集数/评分/词云多维分析 大屏展示 源码 ✅
  • 罗湖做网站的公司哪家好seo分析师