def METHOD_NAME(tb: Table, expected_content: Dict[int, List[str]], columns: Dict[int, str], table_name: str) -> Table:
    """Prepare raw content of a specific sheet in the the BEIS excel file (loaded with a simple pd.read_excel(...)).
    It contains some sanity checks due to the poor formatting of the original file, and some basic processing (like
    removing footnote marks from the years, e.g. "2000 (5)" -> 2000). Duplicate rows are not removed.
    Parameters
    ----------
    tb : Table
        Input data from a specific sheet.
    expected_content : dict
        Words that are expected to be found in any row of specific columns in the data. The dictionary key should be the
        column number (where the 0th column is expected to be the years variable), and the value should be a list of
        words (for example, a column that contains data for natural gas may have the words "Natural" and "gas" spread
        across two different rows). This is used to check that the columns are in the order we expected.
    columns : dict
        Columns to select from data, and how to rename them. The dictionary key should be the column number, and the
        value should be the new name for that column.
    table_name : str
        Short name of the output table.
    Returns
    -------
    tb : Table
        Clean data extracted, with proper column names.
    """
    tb = tb.copy()
    # Check that certain words are contained in specific columns, to ensure that they contain the data we expect.
    for column in expected_content:
        expected_elements = expected_content[column]
        for element in expected_elements:
            error = f"Excel file may have changed structure (expected {element} in column {column})."
            assert tb[tb.columns[column]].str.contains(element, regex=False).any(), error
    # Select columns and how to rename them.
    tb = tb.loc[:, tb.columns[list(columns)]].rename(columns={tb.columns[i]: columns[i] for i in columns})
    # Remove all rows for which the year column does not start with an integer of 4 digits.
    tb = tb.loc[tb["year"].astype(str).str.contains(r"^\d{4}", regex=True, na=False)].reset_index(drop=True)
    # Remove annotations from years (e.g. replace "1987 (5)" by 1987).
    tb["year"] = tb["year"].astype(str).str[0:4].astype(int)
    # Make all columns float (except year column).
    tb.astype({column: float for column in tb.columns if column != "year"})
    # Update table short name.
    tb.metadata.short_name = table_name
    # Set an appropriate index and sort conveniently.
    # NOTE: We do not verify integrity because there are duplicated rows, that will be handled in the garden step.
    tb = tb.set_index(["year"], verify_integrity=False).sort_index().sort_index(axis=1)
    return tb