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:
Dan Dembinski
2019-06-28 13:24:25 -04:00
parent a287e7386f
commit 17894e82ea
3 changed files with 298 additions and 266 deletions

View File

@@ -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