    """
        This example script imports an Excel file and
        creates a workset from that dataset.
    """
    import umetrics
    import os
    import tempfile
    from tkinter import messagebox, Tk

    def show_message(message):
        # Show a tkinter messagebox with the message.
        tk_main=Tk()
        tk_main.withdraw()
        messagebox.showinfo(title='Create Project', message=message)
        tk_main.destroy()

    def run():
        show_message('This script will:\n'+
                     'Read two sheets from an excel file.\n'+
                     'Create a new project with two datasets from the two sheets.\n'+
                     'Create and fit a PLS model from the two datasets.')
        # Close the current open project
        project = umetrics.SimcaApp.get_active_project()
        if project.is_open :
            if not umetrics.simca.ProjectHandler.close_project(project, True):
                return

        # The paths for data files and where the project should be saved
        scriptpath = os.path.dirname(os.path.realpath(__file__))
        datapath = scriptpath + r'\Data\Foods.xls'
        projectpath = tempfile.gettempdir() + r'\CreateProject.usp'
        if os.path.isfile(projectpath):
            os.remove(projectpath)

        # Create a setting to read first two sheets from the Excel file
        # UseIndexes tells that the index of the sheets should be used instead of the sheet name
        optionsSheet1 = ''
        optionsSheet2 = ''

        # Read the data sheets
        sheet1 = umetrics.impdata.read_file(datapath, openoptions = optionsSheet1)
        sheet2 = umetrics.impdata.read_file(datapath, openoptions = optionsSheet2)

        # Specify primary and secondary ID
        # Set first row to primary variable ID
        sheet1.importspec.set_row_type(0, umetrics.impdata.ImportSpecification.rowtype.primaryvarid)
        sheet2.importspec.set_row_type(0, umetrics.impdata.ImportSpecification.rowtype.primaryvarid)
        # Set first colum to primary observation ID
        sheet1.importspec.set_col_type(0, umetrics.impdata.ImportSpecification.columntype.primaryobsid)
        sheet2.importspec.set_col_type(0, umetrics.impdata.ImportSpecification.columntype.primaryobsid)
        # Set second colum to secondary observation ID
        sheet1.importspec.set_col_type(1, umetrics.impdata.ImportSpecification.columntype.secondaryobsid)
        sheet2.importspec.set_col_type(1, umetrics.impdata.ImportSpecification.columntype.secondaryobsid)

        # Create a new project
        project = umetrics.simca.ProjectHandler.create_project(projectpath)

        # Create the dataset
        ds_num1 = project.create_dataset(sheet1, "DS1")
        ds_num2 = project.create_dataset(sheet2, "DS2")

        # Set the project as the active project in SIMCA to be able to show plots
        umetrics.SimcaApp.set_active_project(project)

        # Create a workset for the model using the two datasets
        workset = project.create_workset([ds_num1, ds_num2])

        # Set the last variable to Y
        numVars = workset.get_data_collection().size_variables()
        workset.set_y(numVars - 1)

        # Set the model typ to PLS
        workset.set_type(umetrics.simca.modeltype.pls)

        # Create the model and fit with three components
        model = workset.create_model()
        project.fit_model(model[0], numcomp=3)

        project.save()

        # Create Summary of fit plot and Score scatter plot
        builder = umetrics.SimcaApp.plot_list_builder()
        builder.score_scatter_plot()

    if __name__ == "__main__":
        run()