Skip to content

Instantly share code, notes, and snippets.

@myersjustinc
Created May 13, 2013 17:43
Show Gist options
  • Select an option

  • Save myersjustinc/5570043 to your computer and use it in GitHub Desktop.

Select an option

Save myersjustinc/5570043 to your computer and use it in GitHub Desktop.
Handle XLSX spreadsheet row contents as Python dicts
import openpyxl
def get_row_as_dict(ws, row_num):
header_cells = ws.rows[0]
record_cells = ws.rows[row_num]
record_dict = {}
for record_cell in record_cells:
header_name = None
for header_cell in header_cells:
if record_cell.column == header_cell.column:
header_name = header_cell.value
record_dict[header_name] = record_cell.value
break
return record_dict
def add_row_as_dict(ws, row_dict):
header_cells = ws.rows[0]
row_num = len(ws.rows) + 1
new_row = []
for header_name, record_value in row_dict.iteritems():
for header_cell in header_cells:
if header_cell.value == header_name:
record_cell = ws.cell(header_cell.column + str(row_num))
record_cell.value = record_value
new_row.append(record_cell)
break
return new_row
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment