Jan-01-2024, 11:25 AM
Hello everybody,
I've written a little Python Script which loads an Excel file and picks random entries basend on a few criteria. Those entries are then written to a python list. The status of those entries needs to be changed afterwards in my excel. This works as planned.
But when the data is written to Excel my custom formatting (Alignment of all rows, text- and row colours are all set back to white, etc.) is gone. So this brings me to my question, how can i save to Excel with pandas while keeping my original formating?
This is my code so far:
I've written a little Python Script which loads an Excel file and picks random entries basend on a few criteria. Those entries are then written to a python list. The status of those entries needs to be changed afterwards in my excel. This works as planned.
But when the data is written to Excel my custom formatting (Alignment of all rows, text- and row colours are all set back to white, etc.) is gone. So this brings me to my question, how can i save to Excel with pandas while keeping my original formating?
This is my code so far:
#!/usr/bin/env Python3 # Imports import pandas as pd import random import sys def main(): # Load Information From Excel df = pd.read_excel('config/Mappe1.xlsx') try: # Create List random_names = [] # Get Random Task Entries for i in [{"description": "Value Below 800", "start_number": 0, "end_number": 800, "amount": 2}, {"description": "Value Above 800", "start_number": 801, "end_number": 10000, "amount": 1}]: # Criteria Are Checked entries = df.query(f"`Category` == 'Tasks' and `Status` == 'Open' and {i['start_number']} <= `Value` <= {i['end_number']}")[['Name', 'Value']].values.tolist() # Select Random Names and Append to List selected_entries = random.sample(entries, i['amount']) random_names.extend(selected_entries) # Change Information in DataFrame for name, follower in random_names: df.loc[df['Name'] == name, 'Status'] = 'Done' # Save Information to Excel df.to_excel('config/Mappe1.xlsx', index=False) except Exception as e: print(e) # Start Main Function main() # End sys.exit()