2012-04-19 3 views
0

Я создал книгу, используя C# excel com interop. У меня есть листы с только данными и сопутствующими графиками. Таблицы и листы находятся на отдельных вкладках excel в книге.C# excel com interop: перемещение диаграмм между листами

Во время создания диаграмм и листов все листы сначала сгруппированы, а группа диаграмм - вторая в списке вкладок. Я хотел бы поместить отдельные вкладки диаграммы сразу после их соответствующих вкладок листа. Это то, что я до сих пор:

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; 
     } 
    } 

Это порождает Невозможно получить Move свойство COM исключения класса Chart во время выполнения. Я думаю, что это вероятно, потому что коллекция Sheets передается как arg для Move.

Любые общие предложения, которые могут помочь мне понять эти объекты? У меня есть догадка, что я мог бы использовать некоторые кастинговые трюки, чтобы заставить это работать.

спасибо.

ответ

0

По-видимому, диаграммы помещаются в контейнер для листов. Я перемещаю диаграммы в положение, захватывая диаграммы из массива листов в книге.

Смежные вопросы