Squash empty rows and columns. Fix #1.

This commit is contained in:
kennytm 2017-02-18 23:22:30 +08:00
parent d9a449d256
commit c90cbe8642
No known key found for this signature in database
GPG key ID: FEF6C8051D0E013C

View file

@ -49,21 +49,32 @@ def main(odf_path):
ods = ezodf.opendoc(odf_path) ods = ezodf.opendoc(odf_path)
for sheet in ods.sheets: for sheet in ods.sheets:
print('##', sheet.name)
column_widths = [max(display_len(display_text(cell)) for cell in column) for column in sheet.columns()] column_widths = [max(display_len(display_text(cell)) for cell in column) for column in sheet.columns()]
if not any(column_widths):
continue
print('##', sheet.name)
printed_header = False
for row in sheet.rows():
contents = [display_text(cell) for cell in row]
if not any(contents):
continue
for n, row in enumerate(sheet.rows()):
print('|', end='') print('|', end='')
for m, cell in enumerate(row): for m, content in enumerate(contents):
content = display_text(cell) column_width = column_widths[m]
disp_len = column_widths[m] + len(content) - display_len(content) if not column_width:
continue
disp_len = column_width + len(content) - display_len(content)
print(' {0:<{1}}'.format(content, disp_len), end=' |') print(' {0:<{1}}'.format(content, disp_len), end=' |')
print() print()
if n == 0: if not printed_header:
printed_header = True
print('|', end='') print('|', end='')
for w in column_widths: for w in column_widths:
if w:
print(':', '-' * (w+1), '|', sep='', end='') print(':', '-' * (w+1), '|', sep='', end='')
print() print()