【问题标题】:c# excel com interop: moving charts in between sheetsc# excel com interop:在工作表之间移动图表
【发布时间】:2012-04-19 18:19:13
【问题描述】:

我使用 c# excel com interop 生成了一个工作簿。我有只有数据和随附图表的表格。图表和工作表位于工作簿中单独的 Excel 选项卡上。

在生成图表和工作表的过程中,所有工作表都在第一组,而图表组在选项卡列表中排在第二位。我想将各个图表选项卡放在相应的工作表选项卡之后。这是我到目前为止所拥有的:

    private void move_charts_into_position(Excel.Workbook workbook)
    {
        int tab_count = 1;
        foreach (Excel.Chart chart_tab in workbook.Charts)
        {
            Console.WriteLine(chart_tab.Index.ToString()); //prints chart 1 here
            if (tab_count + 1 > workbook.Sheets.Count)
                chart_tab.Move(workbook.Sheets[tab_count], Type.Missing);
            else
                chart_tab.Move(workbook.Sheets[tab_count], workbook.Sheets[tab_count + 1]); //fails at first iteration here

            tab_count+=2;
        }
    }

这会在运行时生成无法获取 Chart 类的 Move 属性 COM 异常。我认为这很可能是因为 Sheets 集合作为 Move 的 arg 传递。

有什么一般性的建议可以帮助我理解这些对象吗?我有一种预感,我可以使用一些铸造技巧来让它发挥作用。

谢谢。

【问题讨论】:

    标签: c# excel exception com interop


    【解决方案1】:

    显然,图表被放置在工作表容器中。我通过从工作簿中的工作表数组中抓取图表来移动图表。

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多