Hi David, based on your code snippid I added a couple of lines to actually center align text in the merged cell in first row.
Please note in the following code that I have added ParagraphProperties in the imports and created one style with textalign="center" as an attribute. *** code follows *** import sys from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableColumnProperties, ParagraphProperties from odf.table import Table, TableRow, TableColumn, TableCell, CoveredTableCell from odf.text import P class makeods: def make_ods(self): ods = OpenDocumentSpreadsheet() col = Style(name='col', family='table-column') col.addElement(TableColumnProperties(columnwidth='1in')) tablecontents = Style(name="Table Contents", family="paragraph") tablecontents.addElement(ParagraphProperties(textalign="center")) table = Table() table.addElement(TableColumn(numbercolumnsrepeated=3, stylename=col)) ods.spreadsheet.addElement(table) # Add first row with cell spanning columns A-C tr = TableRow() table.addElement(tr) tc = TableCell(numbercolumnsspanned=3) tc.addElement(P(stylename=tablecontents, text="ABC1")) tr.addElement(tc) # Uncomment this to more accurately match native file ##tc = CoveredTableCell(numbercolumnsrepeated=2) ##tr.addElement(tc) # Add two more rows with non-spanning cells for r in (2,3): tr = TableRow() table.addElement(tr) for c in ('A','B','C'): tc = TableCell() tc.addElement(P(text='%s%d' % (c, r))) tr.addElement(tc) ods.save("ods-test.ods") m = makeods() m.make_ods() Still the text in the cell is not centered. happy hacking. Krishnakant. -- http://mail.python.org/mailman/listinfo/python-list