Since there was some varience between clients on the order of the headers, I reworked some sections to work off header names instead of hardcoded column letter/numbers
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from openpyxl.styles import Font
|
||||
from openpyxl.styles import PatternFill
|
||||
# from openpyxl.styles import numbers
|
||||
|
||||
from openpyxl.utils import get_column_letter
|
||||
bold = Font(bold=True)
|
||||
|
||||
|
||||
@@ -65,13 +65,32 @@ def Format_Report(sheet, SSheader, columnFormat):
|
||||
count += 1
|
||||
rowcount = 1
|
||||
|
||||
def Save_Report(wb, sheet, sheet2, sheet3, SSheader, columnFormat):
|
||||
def Save_Report(wb, sheet, sheet2, sheet3, SSheader, detail_header, columnFormat):
|
||||
|
||||
# adds total fields at bottom of report
|
||||
summarylength = sheet.max_row
|
||||
itemlength = sheet2.max_row
|
||||
productlength = sheet3.max_row
|
||||
|
||||
PrintQuantity = 0
|
||||
for x in detail_header:
|
||||
if x != "Printing Option: PrintingQuantity":
|
||||
PrintQuantity += 1
|
||||
else:
|
||||
break
|
||||
PrintQuantity += 1
|
||||
|
||||
ItemPrice = 0
|
||||
for x in detail_header:
|
||||
if x != "Item Price":
|
||||
ItemPrice += 1
|
||||
else:
|
||||
break
|
||||
ItemPrice += 1
|
||||
|
||||
PrintQuantityColumn = get_column_letter(PrintQuantity)
|
||||
ItemPriceColumn = get_column_letter(ItemPrice)
|
||||
|
||||
lightGreen = 'ADFF2F'
|
||||
darkGreen = '006400'
|
||||
|
||||
@@ -82,8 +101,15 @@ def Save_Report(wb, sheet, sheet2, sheet3, SSheader, columnFormat):
|
||||
sheet.cell(column = 8, row = summarylength+1).fill = PatternFill(start_color=lightGreen, end_color=darkGreen, fill_type='solid')
|
||||
sheet.cell(column = 8, row= summarylength+1).font = Font(color=darkGreen)
|
||||
|
||||
sheet2.cell(column=7, row=itemlength + 1, value="=SUM(G2:G" + str(itemlength)+")")
|
||||
sheet2.cell(column=8, row=itemlength + 1, value="=SUM(H2:H" + str(itemlength)+")")
|
||||
sheet2.cell(column=PrintQuantity, row=itemlength + 1, value="=SUM(" + PrintQuantityColumn + "2:" + PrintQuantityColumn + str(itemlength) + ")")
|
||||
sheet2.cell(column=ItemPrice, row=itemlength + 1, value="=SUM(" + ItemPriceColumn + "2:" + ItemPriceColumn + str(itemlength) + ")")
|
||||
|
||||
|
||||
|
||||
|
||||
# sheet2.cell(column=PrintQuantity, row=itemlength + 1, value="=SUM(G2:G" + str(itemlength)+")")
|
||||
# sheet2.cell(column=ItemPrice, row=itemlength + 1, value="=SUM(H2:H" + str(itemlength)+")")
|
||||
|
||||
# Format_Report misses this one. Whoops
|
||||
sheet2.cell(column=8, row=itemlength + 1).number_format = '$#,##0.00_);($#,##0.00)'
|
||||
|
||||
@@ -109,6 +135,7 @@ def Save_Report(wb, sheet, sheet2, sheet3, SSheader, columnFormat):
|
||||
sheet.cell(column=5, row=rowcount).number_format = '$#,##0.00_);($#,##0.00)'
|
||||
sheet.cell(column=6, row=rowcount).number_format = '$#,##0.00_);($#,##0.00)'
|
||||
sheet.cell(column=7, row=rowcount).number_format = '$#,##0.00_);($#,##0.00)'
|
||||
sheet.cell(column=8, row=rowcount).number_format = '$#,##0.00_);($#,##0.00)'
|
||||
if rowcount < sheet.max_row:
|
||||
rowcount += 1
|
||||
count += 1
|
||||
|
||||
Reference in New Issue
Block a user