1

C# で Microsoft.Jet.OLEDB.4.0** を使用して、Excel スプレッドシート (.xlsm 形式) の内容をプログラムで読み取ろうとしています。

私の接続文字列は次のとおりです。

Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES;IMEX=1;"";Data Source="C:\Test.xlsm"

コードを実行すると、次のような例外で失敗します。

OldDbException はユーザー コードによって処理されませんでした

外部テーブルが予期された形式ではありません。

ただし、Excel で Test.xlsm ファイルを開いてコードを再実行すると、例外なく動作し、意図したとおりに実行されます。問題ありません。

  • 特定のファイルを Excel で開くと、コードがファイルにアクセスする方法が変わるのはなぜですか?
  • Microsoft Jet OLEDB プロバイダーで .xlsm ファイルを開く正しい方法は何ですか?

追加情報: Windows 7 x64 / Excel 2010 の実行

4

1 に答える 1