feat(NoSheet): default sheet creator finished

This commit is contained in:
darkicewolf50 2024-12-07 16:05:34 -07:00
parent 0077950f2a
commit 8e98eeee64
4 changed files with 55 additions and 29 deletions

View File

@ -2,7 +2,8 @@ import openpyxl
import yaml import yaml
import json import json
import datetime import datetime
from openpyxl.styles import Font, Border, Side from openpyxl.styles import Font, Border, Side, PatternFill
from openpyxl.formatting.rule import FormulaRule
def NoSheet(): def NoSheet():
@ -27,7 +28,7 @@ Recruitment Responses:
- Academic Year: 1st - Academic Year: 1st
- Why are you interested in joining UCalgary BAJA?: Example Interest - Why are you interested in joining UCalgary BAJA?: Example Interest
- Where did you hear about us?: Testing - Where did you hear about us?: Testing
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Yes #add condiftional formatting for no to make whole line red - Are you available for team meetings/work days? Saturdays 10 am - 4 pm: "No" #add condiftional formatting for no to make whole line red
Interview TimeTable: Interview TimeTable:
- Date: 9/16/2024 - Date: 9/16/2024
- Meeting Duration: 30 min - Meeting Duration: 30 min
@ -37,36 +38,37 @@ Interview TimeTable:
- Interviewee Email: steve.the.bug@ucalgary.ca - Interviewee Email: steve.the.bug@ucalgary.ca
- Category (if not general): Test - Category (if not general): Test
- Interviewer(s) Name(s): Example - Interviewer(s) Name(s): Example
- Status: Dropdown (Options in datahelp) #default is Unkown - Status: Dropdown (Options in datahelp) #default is Unknown
Data Helper: Data Helper:
- Status Dropdown: - Status Dropdown:
- Unknown - Unknown
- Done - Done
- No Show - No Show
- Cancelled/Moved - Cancelled/Moved
- How to Add Dropdown: Go into data, click data validation, select list then select the area you want to get values from in the formula spot
""" """
yamlsheet = yaml.safe_load(yamlraw) yamlsheet = yaml.safe_load(yamlraw)
print(json.dumps(yamlsheet, indent=4)) # print(json.dumps(yamlsheet, indent=4))
year_donation = int(str(datetime.datetime.now().year)[2:]) + 1 # gets the last two digits of the current year then adds 1 for the current season year_donation = int(str(datetime.datetime.now().year)[2:]) # gets the last two digits of the current year then adds 1 for the current season
file_name = f"OR{year_donation}-L-Interview Data.xlsx" # name based off the 2025 naming system file_name = f"OR{year_donation + 1}-L-Interview Data.xlsx" # name based off the 2025 naming system
sheet_names = [name for name in yamlsheet.keys()]
# border style # border style
border = Border( border = Border( # defualt behaviour is thin
left=Side(style='medium'), left=Side(style='thin'),
right=Side(style='medium'), right=Side(style='thin'),
top=Side(style='medium'), top=Side(style='thin'),
bottom=Side(style='medium') bottom=Side(style='thin')
) )
# for conditional formatting
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
# create workbook in memory # create workbook in memory
work_book = openpyxl.Workbook() work_book = openpyxl.Workbook()
if len(sheet_names) > 0:
# remove default sheet # remove default sheet
default_sheet = work_book.active default_sheet = work_book.active
work_book.remove(default_sheet) work_book.remove(default_sheet)
@ -85,6 +87,28 @@ Data Helper:
cell.border = border cell.border = border
example_data = [list(data.values())[0] for data in title_list]
for col_num, data in enumerate(example_data, start=1):
if isinstance(data, list):
row_num = 2
for item in data:
cell = sheet.cell(row=row_num, column=col_num)
cell.value = item
row_num += 1
else:
cell = sheet.cell(row=2, column=col_num)
cell.value = data
if data == "Dropdown (Options in datahelp)":
cell.value = "Unknown"
if sheet.title == "Recruitment Responses":
sheet.conditional_formatting.add("A2:I2", FormulaRule(formula=['=$I2="No"'], fill=PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")))
# save to storage # save to storage
work_book.save(file_name) work_book.save(file_name)

BIN
OR25-L-Interview Data.xlsx Normal file

Binary file not shown.

View File

@ -1,3 +1,4 @@
"fastapi[standard]" "fastapi[standard]"
pandas pandas
openpyxl openpyxl
yaml

View File

@ -17,7 +17,7 @@ Recruitment Responses:
- Academic Year: 1st - Academic Year: 1st
- Why are you interested in joining UCalgary BAJA?: Example Interest - Why are you interested in joining UCalgary BAJA?: Example Interest
- Where did you hear about us?: Testing - Where did you hear about us?: Testing
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Yes #add condiftional formatting for no to make whole line red - Are you available for team meetings/work days? Saturdays 10 am - 4 pm: "Yes" #add condiftional formatting for no to make whole line red
Interview TimeTable: Interview TimeTable:
- Date: 9/16/2024 - Date: 9/16/2024
- Meeting Duration: 30 min - Meeting Duration: 30 min
@ -27,10 +27,11 @@ Interview TimeTable:
- Interviewee Email: steve.the.bug@ucalgary.ca - Interviewee Email: steve.the.bug@ucalgary.ca
- Category (if not general): Test - Category (if not general): Test
- Interviewer(s) Name(s): Example - Interviewer(s) Name(s): Example
- Status: Dropdown (Options in datahelp) #default is Unkown - Status: Dropdown (Options in datahelp) #default is Unknown
Data Helper: Data Helper:
- Status Dropdown: - Status Dropdown:
- Unknown - Unknown
- Done - Done
- No Show - No Show
- Cancelled/Moved - Cancelled/Moved
- How to Add Dropdown: Go into data, click data validation, select list then select the area you want to get values from in the formula spot