我们有一个 VSTO Excel 加载项,它能够通过调用 Web 服务来加载数据。通过 Web 服务响应获取数据后,我们将其保存到数据集并在列表对象的帮助下将其加载到 Excel 工作表中。现在数据集总是被缓存,这样当用户下次打开工作簿时,我们不需要再次调用 Web 服务来加载数据。它必须与缓存的数据集一起加载。
问题是,对于某些工作簿(不是全部),数据集在第一次保存工作簿后正确保存和加载。但是,相同的数据集在第二次保存后变为空。该数据集有 4200 多条记录和 150 多列。我想提一下,在第二次保存之后,所有其他缓存的变量都有值。只有缓存的数据集为空。以下几点可以更好地理解问题。
- 打开 Excel 模板,通过 Web 服务调用加载数据。(现在加载数据集)
- 保存并关闭工作簿。
- 重新打开同一个工作簿。数据集仍然完好无损。正确加载工作簿。
- 保存并关闭工作簿。
- 重新打开同一个工作簿。数据集为空。因此无法将数据加载到 Excel。现有的 excel 行将被删除,因为列表对象的行为就像是第一次打开一样。
有谁知道可能出了什么问题?我们正在使用 .NET framework 3.5/4.0 和 Excel 2007。Excel 2010 不会产生任何问题。