Skip to content
Advertisement

How to dump a dictionary into an .xlsx file with proper column alignment?

I have a dictionary with 2000 items which looks like this:

d = {'10071353': (0, 0), '06030011': (6, 0), '06030016': (2, 10), ...}

Given that I want to write it to an .xlsx file, I use this code (taken from here):

import xlsxwriter
workbook = xlsxwriter.Workbook('myfile.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0
order=sorted(d.keys())
for key in order:
    row += 1
    worksheet.write(row, col,     key)
    for item in d[key]:
        worksheet.write(row, col + 1, item)
        row += 1

workbook.close()

This produces an .xlsx file with the following alignment:

    A           B
    06030001    0
                10

    06030002    10
                10

    06030003    5
                10

However, this is the alignment I am after:

A           B    C
06030001    0    10

06030002    10   10

06030003    5    10

What should I change in the script to achieve this?

Advertisement

Answer

This is what I think should help:

import xlsxwriter
workbook = xlsxwriter.Workbook('myfile.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0

order=sorted(d.keys())
for key in order:
    row += 1
    worksheet.write(row, col,     key)
    i =1
    for item in d[key]:
        worksheet.write(row, col + i, item)
        i += 1

workbook.close()

IN:

d={'10071353':(0, 0),'06030011':(6, 0),'06030016':(2, 10)

OUT:
A           B    C
06030001    6    0

06030002    2    10

06030003    0    0
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement