PDA

View Full Version : Iterating through Excell Files



Saint//+
11-08-2015, 07:52 AM
im using openpyxl and python 3.4



def JDebug(message):
if testing is True:
print(message)

def employer_info(w_employer):
for column in range(1, eSheet.get_highest_column() + 1):
if eSheet[str(get_column_letter(column)) + '1'].value =='Employer':
e_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Brand':
brand_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Street':
street_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='City':
city_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='State':
state_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Zipcode':
zipcode_ltr = get_column_letter(column)

print(e_ltr + brand_ltr + street_ltr + city_ltr + state_ltr + zipcode_ltr)

for row in range(1, eSheet.get_highest_row() + 1):
employer = wSheet[str(e_ltr) + str(row)].value
if employer == w_employer:
brand = eSheet[str(brand_ltr) + str(row)].value
street = eSheet[str(street_ltr) + str(row)].value
city = eSheet[str(city_ltr) + str(row)].value
state = eSheet[str(street_ltr) + str(row)].value
JDebug('found: ' + str(brand) + ' ' + str(street) + ' ' + str(city) + ' ' + str(state))


def populate():
for column in range(1, eSheet.get_highest_column() + 1):
if eSheet[str(get_column_letter(column)) + '1'].value =='Employer':
e_ltr = get_column_letter(column)
for row in range(1, eSheet.get_highest_row() + 1):
working_employer = eSheet[str(e_ltr) + str(row)].value
JDebug('looking for ' + working_employer)
employer_info(working_employer)


This is my result


looking for Employer
ABCDEF
found: Brand Street City Street
looking for Hardee's--2110 Hampton Ave-St. Louis-MO-63110
ABCDEF
found: Hardee's 2110 Hampton Ave St. Louis 2110 Hampton Ave
found: Little Ceasars 3728 S KINGSHIGHWAY BLVD SAINT LOUIS 3728 S KINGSHIGHWAY BLVD
found: McDonalds 1420 HAMPTON AVE SAINT LOUIS 1420 HAMPTON AVE
looking for Little Ceasars--3728 S KINGSHIGHWAY BLVD-SAINT LOUIS-MO-63109
ABCDEF
found: McDonalds 1919 S JEFFERSON AVE SAINT LOUIS 1919 S JEFFERSON AVE
looking for McDonalds--1420 HAMPTON AVE-SAINT LOUIS-MO-63139
ABCDEF
found: McDonalds 4011 BAYLESS AVE SAINT LOUIS 4011 BAYLESS AVE
found: McDonalds 4200 HAMPTON AVE SAINT LOUIS 4200 HAMPTON AVE
looking for McDonalds--1919 S JEFFERSON AVE-SAINT LOUIS-MO-63104
ABCDEF
found: McDonalds 4420 S BROADWAY SAINT LOUIS 4420 S BROADWAY
looking for McDonalds--4011 BAYLESS AVE-SAINT LOUIS-MO-63125
ABCDEF
looking for McDonalds--4200 HAMPTON AVE-SAINT LOUIS-MO-63109
ABCDEF


this is what it should be


looking for Employer
ABCDEF
found: Brand Street City Street
looking for Hardee's--2110 Hampton Ave-St. Louis-MO-63110
ABCDEF
found: Hardee's 2110 Hampton Ave St. Louis 2110 Hampton Ave
looking for Little Ceasars--3728 S KINGSHIGHWAY BLVD-SAINT LOUIS-MO-63109
ABCDEF
found: Little Ceasars 3728 S KINGSHIGHWAY BLVD SAINT LOUIS 3728 S KINGSHIGHWAY BLVD
looking for McDonalds--1420 HAMPTON AVE-SAINT LOUIS-MO-63139
ABCDEF
found: McDonalds 1420 HAMPTON AVE SAINT LOUIS 1420 HAMPTON AVE
looking for McDonalds--1919 S JEFFERSON AVE-SAINT LOUIS-MO-63104
ABCDEF
found: McDonalds 1919 S JEFFERSON AVE SAINT LOUIS 1919 S JEFFERSON AVE
looking for McDonalds--4011 BAYLESS AVE-SAINT LOUIS-MO-63125
ABCDEF
found: McDonalds 4011 BAYLESS AVE SAINT LOUIS 4011 BAYLESS AVE
looking for McDonalds--4200 HAMPTON AVE-SAINT LOUIS-MO-63109
ABCDEF
found: McDonalds 4200 HAMPTON AVE SAINT LOUIS 4200 HAMPTON AVE
looking for McDonalds--4420 S BROADWAY-SAINT LOUIS-MO-63111
ABCDEF
found: McDonalds 4420 S BROADWAY SAINT LOUIS 4420 S BROADWAY




What's going on with this?





This is the fix

def find_workers(w_employer):
for column in range(1, wSheet.get_highest_column() + 1):
if wSheet[str(get_column_letter(column)) + '1'].value == 'Employer':
em_ltr = get_column_letter(column)
elif wSheet[str(get_column_letter(column)) + '1'].value == 'First':
first_ltr = get_column_letter(column)
elif wSheet[str(get_column_letter(column)) + '1'].value == 'Last':
last_ltr = get_column_letter(column)

JDebug('Looking for workers from: ' + str(w_employer))
for row in range(1, wSheet.get_highest_row()):
employer = wSheet[str(em_ltr) + str(row)].value
if employer == w_employer:
first = wSheet[str(first_ltr) + str(row)].value
last = wSheet[str(last_ltr) + str(row)].value
JDebug('Found: ' + str(first) + ' ' + str(last))

def employer_info():
for column in range(1, eSheet.get_highest_column() + 1):
if eSheet[str(get_column_letter(column)) + '1'].value =='Employer':
e_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Brand':
brand_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Street':
street_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='City':
city_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='State':
state_ltr = get_column_letter(column)
elif eSheet[str(get_column_letter(column)) + '1'].value =='Zipcode':
zipcode_ltr = get_column_letter(column)


for row in range(2, eSheet.get_highest_row() + 1):
JDebug('Looking for new Employer')
working_employer = eSheet[str(e_ltr) + str(row)].value
brand = eSheet[str(brand_ltr) + str(row)].value
street = eSheet[str(street_ltr) + str(row)].value
city = eSheet[str(city_ltr) + str(row)].value
state = eSheet[str(street_ltr) + str(row)].value
JDebug('found: ' + str(brand) + ' ' + str(street) + ' ' + str(city) + ' ' + str(state))
find_workers(working_employer)