私はc#excel com interopを使用してワークブックを生成しました。私はちょうどデータと一緒にチャートを持っているシートを持っています。チャートとシートは、ワークブック内の別々のタブに表示されます。c#excel com interop:シート間でチャートを移動する
チャートおよびシートの生成中に、すべてのシートが最初にグループ化され、チャートのグループがタブリスト内で2番目にグループ化されます。個々のチャートタブを対応するシートタブの直後に配置したいと思います。これは私がこれまで持っているものです。
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;
}
}
これは、実行時にチャートクラス COM例外の移動プロパティを取得できませんを生成します。 SheetsコレクションがMoveの引数として渡されている可能性が高いと思います。
これらのオブジェクトの理解に役立つ一般的な提案はありますか?私は、これを動作させるためにいくつかのキャストトリックを採用することができます。
ありがとうございます。