1

FoxPro 中有这样的命令:

“复制到[路径] [条件] xls”将数据从 FoxPro DBF 导出到 Microsoft Excel。在这种情况下,excel 版本是 2.0。

问题:我想用 C# 读取这个导出的 excel 文件。所以我尝试使用这个提供程序:

Provider=Microsoft.ACE.OLEDB.12.0

有了这个属性:

Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;

或者

Extended Properties=Excel 12.0;HDR=Yes;IMEX=1;

但他们没有工作(我发现了这个错误):

External table is not in the expected format.

有没有办法在 C# 中读取 Microsoft Excel 2.0 文件?我需要一个提供程序来读取它,例如作为 DataTable 读取,我不使用 VSTO 读取它!

PS:Microsoft Excel 97(及更高版本)很容易正确显示此导出文件。我不知道为什么我无法使用 C# 和 Microsoft Excel Providers for C# 读取它们?

4

2 回答 2

2

Excel 2.0 是一种相当陈旧的文件格式,但您应该能够使用这样的通用 ODBC 连接字符串:

DRIVER={Microsoft Excel Driver (*.xls)};IMEX=1;MaxScanRows=16;DBQ=C:\MyExcelFile.xls;

// then use a query like
SELECT * FROM [Sheet1$]

如果这不起作用,您可能会使用CodePlex 上的 Excel Data Reader等托管库获得更大的成功。

也许发布代码副本和 Excel 文件的屏幕截图,因为有时很难排除故障。

于 2012-08-26T03:45:35.780 回答
0

是否可以将您的 Foxpro 代码更改为:

COPY TO [yourpath\yourfile.csv] TYPE DELIMITED

或者

COPY TO [yourpath\yourfile.xls] TYPE XL5

您应该能够读取这些文件类型。

于 2012-08-27T14:56:37.020 回答