#!/usr/bin/python '''Adds a row in the pending sheet for the potential new meember''' from openpyxl import load_workbook import argparse argparser = argparse.ArgumentParser(prog='addrow.py') argparser.add_argument('--date', required=True, help='Date in MM/DD/YYYY format') argparser.add_argument('--name', required=True, help='Contact name like "first last"') argparser.add_argument('--number', required=True, help='Contact phone number XXX-XXX-XXXX') argparser.add_argument('--email', required=True, help='Contact email address') argparser.add_argument('--emergencyname', required=True, help='Emergency contact name like "first last"') argparser.add_argument('--emergencynumber', required=True, help='Emergency contact phone number XXX-XXX-XXXX') argparser.add_argument('--user', required=True, help='Desired username') argparser.add_argument('--donation', required=True, help='Desired monthly donation') argparser.add_argument('--board1', required=True, help='First board signee') argparser.add_argument('--board2', required=True, help='Second board signee') argparser.add_argument('--infile', default='membership.xlsx', help='Input file name') argparser.add_argument('--outfile', default='membership.xlsx', help='Output file name') args = argparser.parse_args() def set_row(accessor): '''Use the supplied accessor to set the row's values''' accessor(0).value = args.date accessor(1).value = args.name accessor(2).value = args.number accessor(3).value = args.emergencynumber accessor(4).value = args.emergencyname accessor(5).value = args.user accessor(6).value = args.donation accessor(7).value = args.email accessor(8).value = args.board1 + " and " + args.board2 + " signed" wb = load_workbook(filename=args.infile) row_added = False sheet = wb.worksheets[2] for row in sheet.rows: print(row[0].value) if row[0].value == "" or row[0].value == None: def access_row(col): '''Provide an accessor for an existing row''' return row[col] set_row(access_row) row_added = True break if not row_added: # add new row at the end row_num = len(sheet.rows) def access_cell(col): '''Provide an accessor for individual cells''' return sheet.cell(row=row_num, column=col) set_row(access_cell) wb.save(filename=args.outfile)