求C#高手::如何用c#程序将pdf文件转换成excel文件

小弟面临困境,,急需用c#程序将pdf文件l里面的数据导出成excel文件的程序,请各位大侠帮忙..谢谢拉... 小弟面临困境,,急需用c#程序将pdf文件l里面的数据导出成excel文件的程序,请各位大侠帮忙..谢谢拉 展开
 我来答
needhx
2011-03-24 · TA获得超过112个赞
知道答主
回答量:142
采纳率:0%
帮助的人:85.7万
展开全部
这么难的问题,悬赏10分也太少了。pdf是很难读的.下面给出一个读pdf的方法
读出来以后,往excel里面写还是很简单的,哥们这个应该会吧,不会的话给你个连接 http://blog.csdn.net/gisfarmer/archive/2009/01/09/3738959.aspx

private void button1_Click(object sender, EventArgs e)
{
string pdfStr = readPDF(文件名);
System.IO.File.WriteAllText(文件名, pdfStr);
}

private string readPDF(string fn)
{
PdfReader p = new PdfReader(fn);
//从每一页读出的字符串
string str = String.Empty;
//"[......]"内部字符串
string subStr = String.Empty;
//函数返回的字符串
string rtStr = String.Empty;
//从每一页读出的8位字节数组
byte[] b = new byte[0];
//"[","]","(",")"在字符串中的位置
Int32 bg = 0, ed = 0, subbg = 0, subed = 0;

//取得文档总页数
int pg = p.NumberOfPages;

for (int i = 1; i <= pg; i++)
{
bg = 0;
ed = 0;

Array.Resize(ref b, 0);
//取得第i页的内容
b = p.GetPageContent(i);

//下一行是把每一页的取得的字节数据写入一个txt的文件,仅供研究时用
//System.IO.File.WriteAllBytes(Application.StartupPath + "\\P" + i.ToString() + ".txt", b);

StringBuilder sb = new StringBuilder();

//取得每一页的字节数组,将每一个字节转换为字符,并将数组转换为字符串
for (int j = 0; j < b.Length; j++) sb.Append(Convert.ToChar(b[j]));
str = sb.ToString();

//循环寻找"["和"]",直到找不到"["为止
while (bg > -1)
{
//取得下一个"["和"]"的位置
bg = str.IndexOf("[", ed);
ed = str.IndexOf("]", bg + 1);

//如果没有下一个"["就跳出循环
if (bg == -1) break;

//取得一个"[]"里的内容,将开始寻找"("和")"的位置初始为0
subStr = str.Substring(bg + 1, ed - bg - 1);
subbg = 0;
subed = 0;

//循环寻找下一个"("和")",直到没有下一个"("就跳出循环
while (subbg > -1)
{
//取得下一对"()"的位置
subbg = subStr.IndexOf("(", subed);
subed = subStr.IndexOf(")", subbg + 1);

//如找不到下一对就跳出
if (subbg == -1) break;
//在返回字符串后面加上新找到的字符串
rtStr += subStr.Substring(subbg + 1, subed - subbg - 1);
}
}
}

//PDF文档中读出来的数据没有换行符,可以根据需要把2个或3个连续的空格改成换行符
rtStr = rtStr.Replace(" ", "\r\n");
return rtStr;
}
爱靠真00
2020-10-28
知道答主
回答量:56
采纳率:0%
帮助的人:3.1万
展开全部
PDF文件读取出来内容顺序容易混乱,再插入到Excel很难保持原格式,我用的Spire.PDF库转换,基本上能保持格式
using Spire.Pdf;
namespace ConvertPDFToExcel
{
class Program
{
static void Main(string[] args)
{
PdfDocument pdf = new PdfDocument();
//加载PDF
pdf.LoadFromFile("测试.pdf");
//保存为Excel
pdf.SaveToFile("PDFToExcel.xlsx", FileFormat.XLSX);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式