def ods_sheet(self, ods, sheetname, titles=["Id", "Name"], order_by_name=True): from officegenerator import Coord if order_by_name==True: self.order_by_name() else: self.order_by_id() s=ods.createSheet(sheetname) s.setColumnsWidth([80, 240]) s.add("A1", [titles], "OrangeCenter") for number, o in enumerate(self.arr): s.add(Coord("A2").addRow(number), o.id, "WhiteRight") s.add(Coord("B2").addRow(number), o.name, "WhiteLeft") s.freezeAndSelect("A1") return s
def __init__(self, mem, filename, table, title): ODS_Write.__init__(self, filename) self.mem=mem sheet=self.createSheet(title) #Array width widths=[] if not table.verticalHeader().isHidden(): widths.append(table.verticalHeader().width()*0.90) for i in range(table.columnCount()): widths.append(table.columnWidth(i)*0.90) sheet.setColumnsWidth(widths) #firstcontentletter and firstcontentnumber if table.horizontalHeader().isHidden() and not table.verticalHeader().isHidden(): coord=Coord("B1") elif not table.horizontalHeader().isHidden() and table.verticalHeader().isHidden(): print("A2") coord=Coord("A2") topleft=Coord("A2") if table.rowCount()<21 else Coord("A2").addRow(table.rowCount()-1-20) sheet.freezeAndSelect(coord, Coord("A2").addRow(table.rowCount()-1), topleft) elif not table.horizontalHeader().isHidden() and not table.verticalHeader().isHidden(): coord=Coord("B2") elif table.horizontalHeader().isHidden() and table.verticalHeader().isHidden(): coord=Coord("A1") #HH if not table.horizontalHeader().isHidden(): for letter in range(table.columnCount()): sheet.add(Coord(coord.letter + "1").addColumn(letter), table.horizontalHeaderItem(letter).text(), "OrangeCenter") logging.debug("HH Done") #VH if not table.verticalHeader().isHidden(): for number in range(table.rowCount()): try:#Caputuro cuando se numera sin items 1, 2, 3 sheet.add(Coord("A" + coord.number).addRow(number), table.verticalHeaderItem(number).text(), "YellowLeft") except: pass logging.debug("VH Done") #Items for number in range(table.rowCount()): for letter in range(table.columnCount()): try: o=self.itemtext2object(table.item(number, letter).text()) sheet.add(Coord(coord.string()).addColumn(letter).addRow(number),o, self.object2style(o)) except:#Not a QTableWidgetItem or NOne pass logging.debug("Items done") self.save()