Python Forum
Complete NEWB and openpyxl project
Thread Rating:
  • 6 Vote(s) - 3.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Complete NEWB and openpyxl project
#14
Here is sample implementation (actually two, slightly different alternatives) how to read and sort the data. Hope it will kick-start you
Of course plenty can be improved.

from collections import defaultdict
from collections import namedtuple # used in OPTION 2
from openpyxl.reader.excel import load_workbook

filename = 'Example.xlsx'
wb = load_workbook(filename)
ws = wb.active

# read header and all data in two variables -> header and data
# Note the asteriks in frot of data
# This way data will hold everything except the first element in ws.values

header, *data = ws.values



# OPTION 1
print('\n\nOPTION 1 output')
# parse data into groups
groups = defaultdict(list)

for row in data:
    group = row[-1][-1]
    groups[group].append(row)

#print each group in desired order
for group, rows in sorted(groups.items()):
    print('\n\nGroup {}\n---------------\n'.format(group))
    for row in sorted(rows, key=lambda x: x[-1][:-1]):
        print(row)


# OPTION 2
print('\n\nOPTION 2 output')

# parse data into groups
groups = defaultdict(list)

# define namedtuple
fields = ('cust', 'first_name', 'last_name', 'full_name', 'reorder')
Record = namedtuple('Record', fields)

for row in data:
    # parse each row into Record namedtuple
    record = Record(*row)
    group = record.reorder[-1] # last char in the recorder property in the record
    groups[group].append(record)

#print each group in desired order
for group, records in sorted(groups.items()):
    print('\n\nGroup {}\n---------------\n'.format(group))
    for record in sorted(records, key=lambda rec: rec.reorder[:-1]):
        print(record)
OUTPUT:
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Messages In This Thread
Complete NEWB and openpyxl project - by Netopia - Jan-09-2019, 08:06 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-09-2019, 08:44 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-09-2019, 09:43 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-09-2019, 09:46 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-09-2019, 09:53 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-09-2019, 10:11 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-09-2019, 10:14 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-10-2019, 06:26 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-10-2019, 07:37 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-10-2019, 08:03 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-10-2019, 08:30 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-10-2019, 08:36 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-10-2019, 08:39 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-11-2019, 01:19 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-11-2019, 01:44 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-11-2019, 01:48 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-11-2019, 01:54 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-11-2019, 01:57 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-11-2019, 02:47 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-11-2019, 02:54 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-11-2019, 03:00 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-14-2019, 07:20 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-14-2019, 07:44 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-14-2019, 08:24 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-14-2019, 08:27 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-15-2019, 12:22 AM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-15-2019, 02:56 AM
RE: Complete NEWB and openpyxl project - by buran - Jan-15-2019, 10:05 AM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-15-2019, 02:14 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-15-2019, 02:21 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-16-2019, 04:36 AM
RE: Complete NEWB and openpyxl project - by buran - Jan-16-2019, 07:04 AM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-16-2019, 03:29 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-16-2019, 05:19 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-17-2019, 04:59 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-17-2019, 05:08 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-17-2019, 05:33 PM
RE: Complete NEWB and openpyxl project - by buran - Jan-17-2019, 06:04 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-17-2019, 10:19 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-18-2019, 03:31 AM
RE: Complete NEWB and openpyxl project - by buran - Jan-18-2019, 07:07 AM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-18-2019, 02:15 PM
RE: Complete NEWB and openpyxl project - by Netopia - Jan-18-2019, 08:15 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Python newb need help Fictile 1 346 Apr-02-2024, 03:28 AM
Last Post: buran
  NameError issue with daughter's newb code MrGonk 2 1,539 Sep-16-2021, 01:29 PM
Last Post: BashBedlam
  Simple newb string question Involute 2 2,317 Sep-08-2019, 12:50 AM
Last Post: Involute
  please help this newb install pygame iofhua 7 6,170 May-15-2019, 01:09 PM
Last Post: buran
  Newb question: Debugging + Linting Python in Visual Studio Code Drone4four 1 2,511 Apr-15-2019, 06:19 AM
Last Post: perfringo
  Newb question about %02d %04d bennylava 30 20,173 Mar-05-2019, 11:23 PM
Last Post: snippsat
  Pthyon 3 question (newb) bennylava 11 6,143 Feb-28-2019, 06:04 PM
Last Post: buran
  newb selfie PatM 5 3,752 Feb-19-2019, 12:20 AM
Last Post: snippsat
  Newb Question - Threading in Crons vvarrior 2 2,887 Jul-20-2018, 08:12 PM
Last Post: vvarrior
  Matt's newb question 1 MattSS102 1 2,786 Aug-28-2017, 03:27 AM
Last Post: BerlingSwe

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020