1

假设我在 WinForms 应用程序中进行了以下设置:

Dim ExcelApp As Microsoft.Office.Interop.Excel.Application
Dim ExcelWorkbook As Microsoft.Office.Interop.Excel.Workbook
Dim wksDataVals As Microsoft.Office.Interop.Excel.Worksheet

ExcelApp.Visible = False

基本上,我有一个不可见的 Excel 实例在后台运行,其中打开了一个工作簿,ExcelWorkbook名为wksDataVals. 并且用户正在通过用户表单操作此工作表(和其他工作表)并查看基于这些操作的一些输出。

现在,在我的表单上,我有一个按钮Show Excel Sheet,一旦用户单击它,我想在一个新的独立工作簿中向他们显示 wksDataVals 的副本,同时将原始文件隐藏在后台以进行进一步的数据操作。我相信我需要通过创建一个新的 Excel 实例来做到这一点,因为我想隐藏这个实例。

有没有比这样做更好的方法:

  1. 保存工作表
  2. 创建 Excel 的新(可见)实例
  3. 在该实例中重新打开工作表

(这可能会导致工作表出现问题,因为我希望它在另一个 Excel 实例中保持打开状态,所以现在只能是只读的) - 我知道我可以通过将工作表重新保存为新名称来克服这个问题,但这一切似乎有点矫枉过正。

关于如何以最简单的方式完成此任务的任何想法?- 也许有一种方法可以在内部保存工作簿/工作表并将其提供给新的 Excel 实例,而不是让 Excel 尝试打开保存的工作表?

谢谢!

4

1 回答 1

1

作为对我自己问题的回答,以防万一有人遇到同样的问题(请专家,如果你有更好的方法,请告诉我),我最终做的是:

  1. 创建一个新的 Excel 实例
  2. 在该实例中创建一个空白的新工作簿
  3. 从隐藏表中复制我关心的范围
  4. 将它(在我的情况下的值和格式是我想要的)粘贴到新工作簿上
  5. 使新的 Excel 实例可见
  6. 设置对新应用程序实例、工作簿、工作表等的引用 = 无,所以现在它不再连接到我的程序。

似乎做得很好。

于 2012-11-13T17:42:29.180 回答