威海自适应网站建设,建设通下载,WordPress在线留言插件,东莞市官网网站建设品牌处理PDF文件中的内容是比较麻烦的事情#xff0c;特别是以表格形式呈现的各种数据。为了充分利用这些宝贵的数据资源#xff0c;我们可以通过程序提取PDF文件中的表格#xff0c;并将其保存为更易于处理和分析的格式#xff0c;如txt、csv、xlsx#xff0c;从而更方便地对…处理PDF文件中的内容是比较麻烦的事情特别是以表格形式呈现的各种数据。为了充分利用这些宝贵的数据资源我们可以通过程序提取PDF文件中的表格并将其保存为更易于处理和分析的格式如txt、csv、xlsx从而更方便地对表格数据进行处理、分析和可视化加快工作效率。本文将介绍如何在.NET平台使用C#代码提取并保存PDF文件中的表格数据。 文章目录 提取PDF文件中的表格并保存为TXT和CSV文件提取PDF文件中的表格并转换为Excel和CSV表格 本文所使用的方法需要用到免费的Free Spire.PDF for .NET可从官网下载或通过NuGet安装
PM Install-Package FreeSpire.PDF提取PDF文件中的表格并保存为TXT和CSV文件
提取PDF表格数据主要用到的是PdfTableExtractor类该类下的ExtractTable(int pageIndex)方法可以提取任意页的所有表格数据并返回表格的集合。在提取到表格数据后我们就可以将数据稍作处理并写入txt文件了。下面是操作示例
创建 PdfDocument 对象并再入PDF文件。
PdfDocument doc new PdfDocument();
doc.LoadFromFile(示例.pdf);创建 PdfTableExtractor 对象。
PdfTableExtractor extractor new PdfTableExtractor(doc);声明 PdfTable 数组.遍历文档页面从页面提取表格。
tableList extractor.ExtractTable(pageIndex);判断表格列表是否为空如果不为空则使用 PdfTable.GetText(int rowIndex, int columnIndex) 方法在每个表格中获取单元格中的数据并添加到StringBuilder中。将处理好的数据保存到TXT文件并关闭PDF文件。
完整代码示例
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Utilities;namespace ExtractPdfTable
{class Program{static void Main(string[] args){// 创建PdfDocument对象并加载PDF文件PdfDocument doc new PdfDocument();doc.LoadFromFile(示例.pdf);// 创建 StringBuilder 对象StringBuilder builder new StringBuilder();// 初始化 PdfTableExtractor 类的实例PdfTableExtractor extractor new PdfTableExtractor(doc);// 声明 PdfTable 数组PdfTable[]? tableList null;int tableCount 1;// 循环遍历页面for (int pageIndex 0; pageIndex doc.Pages.Count; pageIndex){// 从特定页面提取表格tableList extractor.ExtractTable(pageIndex);// 判断表格列表是否为空if (tableList ! null tableList.Length 0){// 遍历列表中的表格foreach (PdfTable table in tableList){// 获取特定表格的行数和列数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);// 将文本添加到 StringBuilder 中并添加制表符builder.Append(text \t);}builder.Append(\r\n);}// 写入 .txt 文件File.WriteAllText($output/TXT表格/TXT表格_{tableCount}.txt, builder.ToString());tableCount 1;}}}doc.Close();}}
}PDF文件
保存的TXT文件
提取PDF文件中的表格并转换为Excel和CSV表格
在提取PDF文件中的表格后我们还可以借助Free Spire.XLS for .NET将提取的表格保存为Excel和CSV表格。Free Spire.XLS for .NET可从官网下载或通过NuGet安装
PM Install-Package FreeSpire.XLS下面是操作示例
创建 PdfDocument 对象并加载示例PDF文件。
PdfDocument doc new PdfDocument();
doc.LoadFromFile(示例.pdf);创建 Workbook 对象并清除默认工作表。
Workbook workbook new Workbook();
workbook.Worksheets.Clear();初始化 PdfTableExtractor 类的实例。
PdfTableExtractor extractor new PdfTableExtractor(doc);声明 PdfTable 数组。循环遍历PDF页面并提取每页的表格。
tableList extractor.ExtractTable(pageIndex);判断表格列表是否为空如果不为空则创建Excel工作表使用 PdfTable.GetText(int rowIndex, int columnIndex) 方法从每个单元格提取数据并通过 sheet.Range[int rowIndex 1, int columnIndex 1].Value 属性将数据写入到创建Excel工作表中。将工作表保存为csv文件。
sheet.SaveToFile(output/表格/CSV表格.csv, ,, Encoding.UTF8);或保存整个Excel工作簿为xlsx文件。
workbook.SaveToFile(output/表格/Excel表格.xlsx, ExcelVersion.Version2013);关闭PDF文件和工作簿文件。
完整代码示例
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Utilities;
using Spire.Xls;namespace ExtractTablesToExcel
{class Program{static void Main(string[] args){// 创建 PdfDocument 对象并加载示例PDF文件PdfDocument doc new PdfDocument();doc.LoadFromFile(示例.pdf);// 创建 Workbook 对象并清除默认工作表Workbook workbook new Workbook();workbook.Worksheets.Clear();// 初始化 PdfTableExtractor 类的实例PdfTableExtractor extractor new PdfTableExtractor(doc);// 声明 PdfTable 数组PdfTable[]? tableList null;int sheetNumber 1;// 循环遍历页面for (int pageIndex 0; pageIndex doc.Pages.Count; pageIndex){// 从特定页面提取表格tableList extractor.ExtractTable(pageIndex);// 判断表格列表是否为空if (tableList ! null tableList.Length 0){// 遍历列表中的表格foreach (PdfTable table in tableList){// 添加工作表Worksheet sheet workbook.Worksheets.Add(string.Format(Table_{0}, 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);// 将文本写入指定单元格sheet.Range[i 1, j 1].Value text;}}sheet.SaveToFile(output/表格/CSV表格.csv, ,, Encoding.UTF8);sheetNumber;}}}// 保存为Excel工作簿workbook.SaveToFile(output/表格/Excel表格.xlsx, ExcelVersion.Version2013);doc.Close();workbook.Dispose();}}
}输出文件
本文介绍了如何使用免费的Free Spire.PDF for .NET和Free Spire.XLS for .NET从PDF文件中提取表格数据并保存到TXT文件、CSV文件以及Excel文件的方法。其他更多功能请前往Spire.PDF for .NET教程查看。