Skip to content

Instantly share code, notes, and snippets.

@veriojon
Created December 9, 2010 22:03
Show Gist options
  • Save veriojon/735407 to your computer and use it in GitHub Desktop.
Save veriojon/735407 to your computer and use it in GitHub Desktop.
def export_records(field_definitions, records):
stream = cStringIO.StringIO()
try:
workbook = Workbook()
sheet = workbook.add_sheet('Exported Records')
#admin = workbook.add_sheet('Metadata')
# write_metadata()
write_header(sheet, field_definitions)
for row, record in enumerate(records):
sheet.write(row+1, 0, record.id)
if record.filename != None:
sheet.write(row+1, 1, str(record.filename))
log.critical(record.id)
for col, definition in enumerate(field_definitions):
data = simplejson.loads(record.data) if record.data else dict()
value = get_value(data.get(definition.identifier, None))
if value is not None:
sheet.write(row+1, col+2, value)
workbook.save(stream)
return stream.getvalue()
finally:
stream.close()
def write_header(sheet, field_definitions):
sheet.write(0, 0, 'SSID')
sheet.write(0, 1, 'Filename')
for col, definition in enumerate(field_definitions):
sheet.write(0, col+1, "%s[%d]" % (definition.label, definition.id))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment