1

FoxProには、次のようなコマンドがあります。

FoxProDBFからMicrosoftExcelにデータをエクスポートする「Copyto[path][condition]xls」。この場合のExcelバージョンは2.0です。

問題:このエクスポートされたExcelファイルをC#で読みたいので、このプロバイダーを使用しようとしています:

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 に答える