要查看我遇到的问题,您必须使用Excel工作簿,其中包含一些特殊内容。 因此,使用Excel 2007/2010,在任何工作表上创建任何图表。现在,在创建的图表上单击鼠标右键,然后选择“移动图表”菜单项。现在,您有两个选项:“对象输入”和“新建工作表”。选择“新建工作表”选项并为新工作表指定一些名称。例如,将其命名为“AAA”。 因此,您现在有了一个包含图表的新选项卡,选项卡的名称为“AAA”,所有内容都正确无误。
现在我的问题:)使用Microsoft.Office.Interop.Excel.dll打开此文档,并尝试查找名为“AAA”的Worksheet对象。你找不到它。在执行此魔术“移动图表”操作之前,现有工作表的数量等于Excel中的工作表数量。 所以,我假设MS有一些“make it a tab”属性,可以为图表对象设置。因此它看起来像Excel中的工作表,但事实并非如此。 我的问题是如何在互操作对象模型中获取这些标签对象的集合?
为什么我需要这个?如果重要 - 我有一些应用程序可以根据docx模板创建docx报告。模板可以包含不同的命令,这些命令告诉从另一个文件中获取某些对象。这些文件可能是Excel文件,这些对象可能是图表。模板由用户编辑一次,然后多次使用。用户通常会打开Excel文件并查看它以确定他应该在这些命令中写入的内容。并且可以理解的是,如果他在选项卡上看到一些带有“AAA”名称的图表,他将编写要求从“AAA”工作表中获取图表的命令...并且我的程序在这里失败,因为不存在这样的工作表。 因此,迭代“类似标签”的对象集合肯定会对我有帮助。
祝你好运, 阿尔乔姆