Web サービス呼び出しを行うことでデータをロードできる VSTO Excel アドインがあります。Web サービスの応答からデータを取得したら、それをデータセットに保存し、リスト オブジェクトを使用して Excel シートに読み込みます。これで、データセットは常にキャッシュされるため、ユーザーが次にワークブックを開いたときに、データを読み込むために Web サービスを再度呼び出す必要がなくなりました。キャッシュされたデータセットと共にロードする必要があります。
問題は、一部のワークブック (すべてではない) で、ワークブックの最初の保存後にデータセットが適切に保存およびロードされることです。ただし、2 回目以降の保存後、同じデータセットが null になります。データセットには、150 以上の列を持つ 4200 以上のレコードがあります。2回目以降の保存後、キャッシュされた他のすべての変数に値があることに言及したいと思います。キャッシュされたデータセットのみが null です。問題をよりよく理解するための次のポイント。
- Excel テンプレートを開き、Web サービス呼び出しを介してデータを読み込みます。(データセットは現在ロードされています)
- ブックを保存して閉じます。
- 同じブックを再度開きます。データセットはそのままです。ワークブックを適切にロードします。
- ブックを保存して閉じます。
- 同じブックを再度開きます。データセットがヌルです。そのため、データを Excel に読み込むことはできません。リスト オブジェクトが初めて開かれたかのように動作するため、既存の Excel 行が削除されます。
誰が何が間違っているのか考えていますか? .NET Framework 3.5/4.0 と Excel 2007 を使用しています。Excel 2010 では問題は発生しません。