“移动图表”不会在Excel Interop对象模型中创build新的工作表

要看到我遇到的问题,您必须使用Excel工作簿,它有一些特殊的东西。 因此,拥有Excel 2007/2010,在任何工作表上创build任何图表。 现在在创build的图表上单击鼠标右键,然后select“移动图表”菜单项。 现在你有两个select:“对象在”和“新表”。 select“新build工作表”选项并为新工作表指定一些名称。 例如将其命名为“AAA”。 结果你现在有了新的选项卡,选项卡的名字是“AAA”,看起来都是正确的。

现在到我的问题:)使用Microsoft.Office.Interop.Excel.dll打开此文档,并尝试find名称为“AAA”的工作表对象。 你不会find它。 现有工作表的数量等于Excel中工作表的数量,然后再执行这个神奇的“移动图表”操作。 所以,我假设MS有一些“使它成为一个选项卡”属性,可以为图表对象设置。 所以它看起来像Excel中的工作表,但它不是。 我的问题是如何获得互操作对象模型中的这些tab对象的集合?

为什么我需要这个? 如果它很重要 – 我有一些基于docx模板创builddocx报告的应用程序。 该模板可以包含不同的命令,告诉从其他文件中取出一些对象。 这些文件可能是一个Excel文件,这些对象可能是一个图表。 该模板由用户编辑一次,然后多次使用。 用户通常会打开Excel文件,并通过它来确定他应该写在这些命令。 而且,如果他在“AAA”名称的选项卡上看到某个图表,他将编写命令,要求从“AAA”工作表中取出图表…并且由于不存在这样的工作表,因此我的程序在此处失败。 所以,通过“标签式”的对象集合迭代肯定会帮助我在这里。

最好的问候,阿尔乔姆

您可以使用Excel工作簿的图表属性获取这些图表的集合。