Skip to the content.

Common patterns

Short snippets for everyday tasks.

Read a single config cell

from xlwings_package import get_named_range_results

protocol = get_named_range_results(wb, "Config", "protocol_name")
threshold = float(get_named_range_results(wb, "Config", "pass_threshold"))

Add a dropdown to a cell

from xlwings_package import add_dropdown_list

add_dropdown_list(wb)  # interactive: prompts for title and values

Add a named range manually

from xlwings_package import add_named_range

ws = wb.sheets["Results"]
header_range = ws.range("B2:F2")
add_named_range(wb, "Results", "results_table", header_range, scope="sheet")

Create or delete a sheet

from xlwings_package import create_sheet, delete_sheet

ws = create_sheet(wb, "New Output")
delete_sheet(wb, "Old Output")

Paste a plot into Excel

from xlwings_package import paste_plot_to_cell

paste_plot_to_cell(
    wb,
    df,
    x_column="Time",
    y_column="Concentration",
    target_cell="H2",
    sheet_name="Results",
)

Load a file from disk

from xlwings_package import read_file_to_df

df = read_file_to_df(file_type="excel", sheet_name="Sheet1")
# Opens a file picker dialog; returns a DataFrame.
# For delimited text use file_type="csv" (lists .csv and .txt). To read an
# export with a metadata preamble, name the header row:
#   df = read_file_to_df(file_type="csv", header_marker="Sample Name")

Colour rows by group (alternating)

from xlwings_package import colour_rows

colour_rows(
    wb,
    name_range="my_table",
    df=df,
    mode="group_alternate",
    column_name="batch_id",
    scope_sheet="Results",
)

Save a DataFrame

from xlwings_package import save_dataframe

save_dataframe(df, default_file_name="results")
# Opens a save dialog; writes CSV or XLSX depending on user choice.