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 の実行