I am working on a code to split one Excel file into multiple files based on some criteria, I got it (mostly) working, but I am having big issue with headers from Excel. when I use this code: df = pd.read_excel(file_path, sheet_name=sheet.Name, header=0) it does not grab the headers correctly. I have tried multiple times, multiple approaches, but as you can see enter image description here for all my tables, the object is readable and the range is correctly grabbed. Here is my Partial code: try: list_objects = sheet.ListObjects if list_objects.Count > 0: print(f"Found {list_objects.Count} List Object(s) (visible tables) in sheet {sheet.Name}") for list_object in list_objects: print(f" - Table Name: {list_object.Name}") print(f" - Visible: {list_object.Parent.Visible}") print(f" - Range Address: {list_object.Range.Address}") # Only process tables that are in our required list if list_object.Name not in REQUIRED_TABLES: print(f" - Skipping table {list_object.Name} (not in required tables list)") continue # Get table range address table_range = list_object.Range.Address # Convert Excel range address to zero-based indices # Remove $ signs and split into start/end cells table_range = table_range.replace('$', '') start_cell, end_cell = table_range.split(':') # Read the sheet and extract the table data df = pd.read_excel(file_path, sheet_name=sheet.Name, header=0) How do I modify this line: df = pd.read_excel(file_path, sheet_name=sheet.Name, header=0) to grab the range from List_object? I have tried directly assigning Table to a df: df = list_object.Range.Value but it was in error. Continue reading...