import pandas as pd


def read_multiple_excel_tab_pattern(xlsx_path: str) -> pd.DataFrame:
    """
    Load and stack multiple excel sheets with same column pattern.

    :xlsx_path: .xlsx file path
    """
    dataframes_list = []
    xlsx = pd.ExcelFile(xlsx_path)
    sheets_number = len(xlsx.sheet_names)
    for index, sheet_name in enumerate(xlsx.sheet_names):
        print(f"Reading sheet {index+1}/{sheets_number} - name: {sheet_name}")
        _df = pd.read_excel(xlsx_path, sheet_name=sheet_name)
        dataframes_list.append(_df)
    return pd.concat(dataframes_list)


def get_missing_expected_columns(
    expected_columns: list, df: pd.DataFrame
) -> list:
    """Return missing dataframe columns from given expectations"""
    return [
        column for column in expected_columns if column not in set(df.columns)
    ]

import pandas as pd


def read_multiple_excel_tab_pattern(xlsx_path: str) -> pd.DataFrame:
    """
    Load and stack multiple excel sheets with same column pattern.

    :xlsx_path: .xlsx file path
    """
    dataframes_list = []
    xlsx = pd.ExcelFile(xlsx_path)
    sheets_number = len(xlsx.sheet_names)
    for index, sheet_name in enumerate(xlsx.sheet_names):
        print(f"Reading sheet {index+1}/{sheets_number} - name: {sheet_name}")
        _df = pd.read_excel(xlsx_path, sheet_name=sheet_name)
        dataframes_list.append(_df)
    return pd.concat(dataframes_list)


def get_missing_expected_columns(
    expected_columns: list, df: pd.DataFrame
) -> list:
    """Return missing dataframe columns from given expectations"""
    return [
        column for column in expected_columns if column not in set(df.columns)
    ]

Load and stack multiple excel sheets with same column pattern.      :xlsx_path: .xlsx file path Return missing dataframe columns from given expectations