Minimum Origin Version Required: Origin 8 SR1
This example is used to customize the structure of Project Explorer.
void project_explorer() { Project pro; if(!pro.Open()) // create a new project { out_str("Failed to create a new project!\n"); return; } Folder fldRoot = pro.RootFolder; // get root folder foreach(Folder subfld in fldRoot.Subfolders) // if subfolder exists, delete it { fldRoot.RemoveSubFolder(subfld.GetName()); } Folder fldSubL1_1 = fldRoot.AddSubfolder("Test Subjects"); // level 1 first subfolder Folder fldSubL2_11 = fldSubL1_1.AddSubfolder("Trials"); // level 2 subfolder, in level 1 first subfolder Folder fldSubL2_12 = fldSubL1_1.AddSubfolder("Results"); // level 2 subfolder, in level 1 first subfolder Folder fldSubL1_2 = fldRoot.AddSubfolder("Control Subjects"); // level 1 second subfolder Folder fldSubL2_21 = fldSubL1_2.AddSubfolder("Trials"); // level 2 subfolder, in level 1 second subfolder Folder fldSubL2_22 = fldSubL1_2.AddSubfolder("Results"); // level 2 subfolder, in level 1 second subfolder Folder fldSubL1_3 = fldRoot.AddSubfolder("Comparison"); // level 1 third subfolder }
The following example is capable of managing project, including creating a new project, appending an existing project to another project, saving a active folder as project, saving a worksheet as template, and saving the project with a new name.
void managing_project() { Project pro; if(!pro.Open()) // create a new project { out_str("Failed to create a new project!\n"); return; } // append the existing project to the new project string strAppendPath = GetAppPath(true) + "Samples\\Graphing\\OffsetY.opj"; if(!pro.Open(strAppendPath, OPJ_OPEN_APPEND_NEW_FOLDER)) { out_str("Failed to append project!\n"); return; } // save folder as project, worksheet as template with data and storage string strFolder = "/Folder1/OffsetY"; // folder path Folder fld(strFolder); if(fld.IsValid()) // if the folder exists { if(!fld.Activate()) // activate the folder { out_str("Failed to activate the folder!\n"); return; } // path of the folder project to be saved string strSaveFolderPath = GetAppPath(false) + "OffsetYFolder.opj"; // save the folder as project with subfolders and attached files if(fld.SaveAsProject(strSaveFolderPath, SFC_INCLUDE_SUBFOLDERS | SFC_INCLUDE_ATTACHED_FILES)) out_str("Save the folder as project successfully!\n"); // loop pages in the folder and save worksheet as template for(int iPage; iPage<fld.Pages.Count(); iPage++) { PageBase pg = fld.Pages(iPage); if(EXIST_WKS != pg.GetType()) // if the page is workbook continue; WorksheetPage wp = pg; Worksheet wks = wp.Layers(0); // get first worksheet in the workbook if(wks) { // save the worksheet as template with data and storage if(wks.SaveAs(GetAppPath(false) + wks.GetName(), OOSAS_DATA | OOSAS_STORAGE)) out_str("Save as worksheet template successfully!\n"); } else out_str("Not a valid worksheet page!\n"); } } // path of the new project string strNewPath = GetAppPath(false) + "MyNewProject.opj"; if(pro.Save(strNewPath)) // save the project as a new project out_str("Succeed to save the new project!\n"); }