PDF文件如何转换成Excel表格?试试这两个方法

最近学会了一项在工作中经常会用到的高效率小技能,可以帮助我们解决很多工作上的问题,这个小技能就是将PDF转成Excel的正确方法。很多小伙伴可能觉得不足为奇,不就是PDF转Excel吗,我们知道的方法可多了,但是真正有效的却很少,今天就把所学的两个简单又实用的方法分享给大家,一起来看看吧!

一、转换器批量处理

1、首先搜索极速玩转并下载安装软件后,打开软件选择上方工具栏列表“PDF转换”中的PDF转Excel进入转换;
在这里插入图片描述

2、点击“添加文档”或直接将所有需要转换的PDF文档拖拽到转换页面,然后点击右下角的一键“开始转换”所有已上传的PDF文件;
在这里插入图片描述

3、转换后的文档可在对应转换格式中的“转换完成”文档处右击打开或软件右上角“转换记录”处右击下载后打开。

二、在线网页免费转

1、首先搜索speedpdf或speedpdf官网,就能找到并打开这个在线转换工具;进入工具页面后,选择首页转换格式中的PDF to Excel;
在这里插入图片描述

2、然后根据页面提示选择需要转换的文件上传,接着点击文件后的convert按钮开始转换,等待一会儿后,点击下载按钮即可。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Apache PDFBox和Apache POI这两个Java库来实现将PDF文件中的表格以及内容转成Excel文件输出的功能。具体实现步骤如下: 1. 引入依赖 在项目的pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.23</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.0.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version> </dependency> ``` 2. 加载PDF文件 使用PDFBox库中的PDFTextStripper类将PDF文件中的文本内容提取出来,然后再使用PDFBox库中的PDFTableStripper类将PDF文件中的表格内容提取出来。具体代码如下: ``` PDDocument document = PDDocument.load(new File("test.pdf")); PDFTextStripper textStripper = new PDFTextStripper(); String text = textStripper.getText(document); PDFTableStripper tableStripper = new PDFTableStripper(); tableStripper.setSortByPosition(true); tableStripper.setStartPage(0); tableStripper.setEndPage(document.getNumberOfPages()); List<List<Rectangle>> rows = tableStripper.getRows(document.getPage(0)); ``` 3. 将表格内容转成二维数组 根据表格的行列信息,将表格内容转成二维数组。具体代码如下: ``` List<List<String>> table = new ArrayList<>(); for (List<Rectangle> row : rows) { List<String> rowData = new ArrayList<>(); for (Rectangle cell : row) { int x = (int) cell.getX(); int y = (int) cell.getY(); int width = (int) cell.getWidth(); int height = (int) cell.getHeight(); String cellText = text.substring(text.indexOf("(" + x + "," + y + ")"), text.indexOf("(" + (x + width) + "," + (y + height) + ")")); rowData.add(cellText.trim()); } table.add(rowData); } ``` 4. 将表格内容写入Excel文件 使用POI库中的Workbook和Sheet类创建Excel文件和工作表,然后将表格内容写入工作表中。具体代码如下: ``` Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet(); for (int i = 0; i < table.size(); i++) { Row row = sheet.createRow(i); List<String> rowData = table.get(i); for (int j = 0; j < rowData.size(); j++) { Cell cell = row.createCell(j); cell.setCellValue(rowData.get(j)); } } FileOutputStream outputStream = new FileOutputStream("test.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); ``` 完整代码如下: ``` import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.util.Rectangle; import org.apache.pdfbox.util.Splitter; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.interactive.form.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; public class PdfToExcel { public static void main(String[] args) throws Exception { PDDocument document = PDDocument.load(new File("test.pdf")); PDFTextStripper textStripper = new PDFTextStripper(); String text = textStripper.getText(document); PDFTableStripper tableStripper = new PDFTableStripper(); tableStripper.setSortByPosition(true); tableStripper.setStartPage(0); tableStripper.setEndPage(document.getNumberOfPages()); List<List<Rectangle>> rows = tableStripper.getRows(document.getPage(0)); List<List<String>> table = new ArrayList<>(); for (List<Rectangle> row : rows) { List<String> rowData = new ArrayList<>(); for (Rectangle cell : row) { int x = (int) cell.getX(); int y = (int) cell.getY(); int width = (int) cell.getWidth(); int height = (int) cell.getHeight(); String cellText = text.substring(text.indexOf("(" + x + "," + y + ")"), text.indexOf("(" + (x + width) + "," + (y + height) + ")")); rowData.add(cellText.trim()); } table.add(rowData); } Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet(); for (int i = 0; i < table.size(); i++) { Row row = sheet.createRow(i); List<String> rowData = table.get(i); for (int j = 0; j < rowData.size(); j++) { Cell cell = row.createCell(j); cell.setCellValue(rowData.get(j)); } } FileOutputStream outputStream = new FileOutputStream("test.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值