ワークブックの操作

OriginはOrigin Cを使用して、分割、統合などブックを操作するための機能を提供しています。

ワークブックを統合

複数のワークブックを統合して一つにまとめる場合、実際には、ソースワークシートからターゲットワークブックにコピーします。ワークブックにワークシートを追加するには、AddLayerメソッドを使用できます。

次のサンプルは、現フォルダ内のすべてのワークブックを統合して新しいワークブックを作成します。

WorksheetPage wksPgTarget;
wksPgTarget.Create("Origin");  // 目的のワークブックを作成
Folder fld = Project.ActiveFolder();  // アクティブ/現在のフォルダを取得
foreach(PageBase pb in fld.Pages) 
{  // フォルダ内全ページでループ
	WorksheetPage wksPgSource = pb;  // Page から WorksheetPageに変換
	// 変換失敗の場合、つまりPageがWorksheetPageでない場合
	if(!wksPgSource) 
        {  
		continue;  // 次のぺージ
	}
	// 目的のワークブックをスキップ
	if(wksPgTarget.GetName() == wksPgSource.GetName()) 
        {
		continue;
	}
	// ワークブック内のすべてのワークシートで統合をループ
	foreach(Layer lay in wksPgSource.Layers) 
        {
		Worksheet wks = lay;  // ワークシート取得
		// ワークブックにワークシート追加
		wksPgTarget.AddLayer(wks, 0, false);  
	}
	// ソースワークブックを保持しない場合破棄
	wksPgSource.Destroy();
}

ワークブックの分割

上記のサンプルでは複数のワークブックを統合して一つにまとめました。ワークブックを分割し、単一ワークシートを持つ複数のブックにすることもできます。

WorksheetPage wksPgSource("Book1");  // 複数シートを持つワークブック
// 全ワークシートでループ
foreach(Layer lay in wksPgSource.Layers) 
{
	Worksheet wks = lay;  // ワークシートを取得
	WorksheetPage wksPgTarget;
	wksPgTarget.Create("Origin");  // 新しいワークブックを作成
	wksPgTarget.AddLayer(wks);  // 新しいワークブックにワークシートを追加
	wksPgTarget.Layers(0).Destroy();  // 最初のワークシートを削除
}