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()
