@jtratner I think that I'll have to leave that to for a separate PR. 

It is probably something that you or @jtratner could sort out more efficiently. Basically the `get_formatted_cells()` method in `format.py` returns cells in column order. Converting that to row order via `DataFrame.iterrows()` would increase enable xlsxwriter to increase it's performance by 2 and flatten its memory use.

However, I don't know if there would be an equivalent loss of performance due to using something like `iterrows()`.

Also, the current xlsxwriter implementation is already x5 times faster than openpyxl and equivalent to xlwt so maybe that is enough for now.

Either way it probably merits a separate discussion/PR.