我尝试使用C#将PDF文件转换为Excel文件。 当我这样写:
foreach (var file in d.GetFiles("*.pdf"))
{
var f = new SautinSoft.PdfFocus { Serial = "xxxxxxxxxxxxx" };
f.OpenPdf(file.OpenRead());
if (f.PageCount > 0)
f.ToExcel(@"d:\File.xls");
}
它有效,但当我写这个:
foreach (var file in d.GetFiles("*.pdf"))
{
var f = new SautinSoft.PdfFocus { Serial = "xxxxxxxxxxxxx" };
f.OpenPdf(file.OpenRead());
if (f.PageCount > 0)
f.ToExcel(@"d:" + file.FullName + "xls");
}
它不起作用。如何更改此行以使其正常工作?
f.ToExcel(@"d:" + file.FullName + ".xls");
答案 0 :(得分:1)
M = [ 1 2 6
1 6 5
2 3 7
2 7 6
3 4 8
3 8 7
5 6 10
5 10 9
6 7 11
6 11 10
7 8 12
7 12 11];
% Check(1,2) - Sees is any row contains *both* 1 and 2
tf = any(any(M == 1, 2) & any(M == 2, 2));
% Check(1,3)
tf = any(any(M == 1, 2) & any(M == 3, 2));
% And if you want to find the matching row
row = find(any(M == 1, 2) & any(M == 2, 2));
已包含完整路径。因此省略" d:"在开始。
答案 1 :(得分:1)
FullName
返回全名,包括扩展程序。因此,在第一个实例中,您正在尝试使用错误的扩展名编写Excel文件。虽然这可以在Unix系统上运行,但Windows喜欢扩展是正确的。通过硬编码“.xls”,您将文件名更改为:
@ “d:\路径\ File.pdf.xls”
这是正确的,但令人困惑。
您需要从文件中删除“.pdf”并将其替换为“.xls”。最简单的方法可能是:
string filename = file.FullName.Replace(".pdf", ".xls");
f.ToExcel(filename);
由于Fullname
已包含前导驱动器号。
这会将所有出现的“.pdf”更改为“.xls”,因此如果该字符串出现在路径的其他位置,它也会在那里更改。