def owriteTable(self, obj): # FIXME ADD FORMATTING # http://books.evc-cit.info/odbook/ch04.html#text-table-section t = table.Table() tc = table.TableColumn(stylename=style.dumbcolumn, numbercolumnsrepeated=str( obj.numcols)) # FIXME FIXME t.addElement(tc) captions = [c for c in obj.children if isinstance(c, advtree.Caption)] if not captions: # handle table w/o caption: return t else: # a section groups table-caption & table: if not len(captions) == 1: log("owriteTable: more than one Table Caption not handeled. Using only first Caption!" ) # group using a section sec = text.Section(stylename=style.sectTable, name="table section") p = ParagraphProxy(stylename=style.tableCaption) sec.addElement(p) self.writeChildren(captions[0], p) # only one caption expected and allowed sec.addElement(t) sec.writeto = t return sec
def testTable(self): """ Create a presentation with a page layout called MyLayout """ presdoc = OpenDocumentPresentation() # We must describe the dimensions of the page pagelayout = style.PageLayout(name="MyLayout") presdoc.automaticstyles.addElement(pagelayout) pagelayout.addElement( style.PageLayoutProperties(margin="0cm", pagewidth="28cm", pageheight="21cm", printorientation="landscape")) # Every drawing page must have a master page assigned to it. masterpage = style.MasterPage(name="MyMaster", pagelayoutname=pagelayout) presdoc.masterstyles.addElement(masterpage) # Style for the title frame of the page # We set a centered 34pt font with yellowish background titlestyle = style.Style(name="MyMaster-title", family="presentation") titlestyle.addElement(style.ParagraphProperties(textalign="center")) titlestyle.addElement(style.TextProperties(fontsize="34pt")) titlestyle.addElement(style.GraphicProperties(fillcolor="#ffff99")) presdoc.styles.addElement(titlestyle) # Style for the photo frame mainstyle = style.Style(name="MyMaster-main", family="presentation") presdoc.styles.addElement(mainstyle) # Create style for drawing page dpstyle = style.Style(name="dp1", family="drawing-page") presdoc.automaticstyles.addElement(dpstyle) page = draw.Page(stylename=dpstyle, masterpagename=masterpage) presdoc.presentation.addElement(page) titleframe = draw.Frame(stylename=titlestyle, width="720pt", height="56pt", x="40pt", y="10pt") page.addElement(titleframe) textbox = draw.TextBox() titleframe.addElement(textbox) textbox.addElement(text.P(text="Presentation")) mainframe = draw.Frame(stylename=mainstyle, width="720pt", height="500pt", x="0pt", y="56pt") page.addElement(mainframe) mainframe.addElement(table.Table())
def __init__(self, spread_sheet: AQOdsSpreadSheet, sheet_name: str) -> None: """ Initialize the sheet. @param spread_sheet. Spreadsheet. @param sheet_name. Name of the sheet. """ self.spread_sheet_parent_ = spread_sheet.spread_sheet self.num_rows_ = 0 self.sheet_ = table.Table(name=sheet_name)
def export_set(dataset): """Returns ODF representation of Dataset.""" wb = opendocument.OpenDocumentSpreadsheet() wb.automaticstyles.addElement(bold) ws = table.Table(name=dataset.title if dataset.title else 'Tablib Dataset') wb.spreadsheet.addElement(ws) dset_sheet(dataset, ws) stream = BytesIO() wb.save(stream) return stream.getvalue()
def export_book(databook): """Returns ODF representation of DataBook.""" wb = opendocument.OpenDocumentSpreadsheet() wb.automaticstyles.addElement(bold) for i, dset in enumerate(databook._datasets): ws = table.Table(name=dset.title if dset.title else 'Sheet%s' % (i)) wb.spreadsheet.addElement(ws) dset_sheet(dset, ws) stream = BytesIO() wb.save(stream) return stream.getvalue()
def _render_name_freq(self, freq_table): """Produces name statistics table. :param freq_table: list of (name, count) tuples. """ def _gencouples(namefreq): halflen = (len(namefreq) + 1) // 2 for i in range(halflen): n1, c1 = namefreq[2 * i] n2, c2 = None, None if 2 * i + 1 < len(namefreq): n2, c2 = namefreq[2 * i + 1] yield n1, c1, n2, c2 total = float(sum(count for _, count in freq_table)) tbl = table.Table() tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) for name1, count1, name2, count2 in _gencouples(freq_table): row = table.TableRow() cell = table.TableCell() cell.addElement(text.P(text=name1 or '-')) row.addElement(cell) cell = table.TableCell() cell.addElement( text.P(text='%d (%.1f%%)' % (count1, count1 / total * 100))) row.addElement(cell) if count2 is not None: cell = table.TableCell() cell.addElement(text.P(text=name2 or '-')) row.addElement(cell) cell = table.TableCell() cell.addElement( text.P(text='%d (%.1f%%)' % (count2, count2 / total * 100))) row.addElement(cell) tbl.addElement(row) self.doc.text.addElement(tbl)
def _render_name_freq(self, freq_table): # docstring inherited from base class def _gencouples(namefreq): halflen = (len(namefreq) + 1) // 2 for i in range(halflen): n1, c1 = namefreq[2 * i] n2, c2 = None, None if 2 * i + 1 < len(namefreq): n2, c2 = namefreq[2 * i + 1] yield n1, c1, n2, c2 total = float(sum(count for _, count in freq_table)) tbl = table.Table() tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) tbl.addElement(table.TableColumn()) for name1, count1, name2, count2 in _gencouples(freq_table): row = table.TableRow() cell = table.TableCell() cell.addElement(text.P(text=name1 or '-')) row.addElement(cell) cell = table.TableCell() cell.addElement( text.P(text='%d (%.1f%%)' % (count1, count1 / total * 100))) row.addElement(cell) if count2 is not None: cell = table.TableCell() cell.addElement(text.P(text=name2 or '-')) row.addElement(cell) cell = table.TableCell() cell.addElement( text.P(text='%d (%.1f%%)' % (count2, count2 / total * 100))) row.addElement(cell) tbl.addElement(row) self.doc.text.addElement(tbl)
def _write_journal(self, journal): path = os.path.join( options.REPORTS_DIR, 'Журнал {} {} {}.odt'.format( self.year, self.months[self.month], self.doctor[1], )) doc = opendocument.OpenDocumentText() table_style = style.Style(name='tableStyle', family='table', masterpagename='masterQ') page_layout = style.PageLayout(name='pageStyle') page_layout.addElement( style.PageLayoutProperties( printorientation='landscape', margin='0cm', pagewidth='290cm', pageheight='21cm', )) master_q = style.MasterPage(name='masterQ', pagelayoutname=page_layout) doc.automaticstyles.addElement(table_style) doc.automaticstyles.addElement(page_layout) doc.masterstyles.addElement(master_q) journal = ([['Дата', 'ФИО', 'Дата Рождения', 'Адрес', 'Заключение']] + journal) _table = table.Table(name='journal') _table.addElement( table.TableColumn(numbercolumnsrepeated=len(journal[0]))) for data in journal: row = table.TableRow() _table.addElement(row) for col in data: cell = table.TableCell(valuetype='string') cell.addElement(text.P(text=str(col or ''))) row.addElement(cell) doc.text.addElement(_table) try: doc.save(path) except PermissionError: self.main_window.create_alert( 'Файл журнала используется.\nЗакройте его и создайте снова.') return self._open(path)
def __call__(self): datatable = table.Table(name="local-table") if self.datasourcehaslabels in ('row', 'both'): t = table.TableHeaderColumns() t.addElement(table.TableColumn()) datatable.addElement(t) t = table.TableColumns() if self.datasourcehaslabels in ('row', 'both'): t.addElement( table.TableColumn(numbercolumnsrepeated=str(self.numcols - 1))) else: t.addElement( table.TableColumn(numbercolumnsrepeated=str(self.numcols))) datatable.addElement(t) if self.datasourcehaslabels in ('column', 'both'): t = table.TableHeaderRows() datatable.addElement(t) tr = table.TableRow() t.addElement(tr) content = self.values[0] for val in content: tc = table.TableCell(valuetype=valuetype(val)) tr.addElement(tc) tc.addElement(text.P(text=str(val))) t = table.TableRows() datatable.addElement(t) rownum = 0 for content in self.values: if rownum == 0 and self.datasourcehaslabels in ('column', 'both'): rownum += 1 continue tr = table.TableRow() t.addElement(tr) for val in content: tc = table.TableCell(valuetype=valuetype(val), value=val) tr.addElement(tc) tc.addElement(text.P(text=str(val))) rownum += 1 return datatable
print "Unable to parse XLIFF file" sys.exit(0) header_info = chandler.getFileTag() body_info = chandler.getBody() #return a dictionary uf = UserFieldDecls() textdoc.text.addElement(uf) # Add user fields for id,transunit in body_info.items(): uf.addElement(UserFieldDecl(name=id,valuetype="string", stringvalue=transunit['target'])) # Start the table, and describe the columns mytable = table.Table(protected="true") mytable.addElement(table.TableColumn(numbercolumnsrepeated=2,stylename=widthwide)) for id,transunit in body_info.items(): tr = table.TableRow() mytable.addElement(tr) tc = table.TableCell(stylename=tcstyle, qattributes={(TABLENS,'protected'):'true'}) tr.addElement(tc) p = P(stylename=tablecontents,text=transunit['source']) tc.addElement(p) tc = table.TableCell(qattributes={(TABLENS,'protected'):'true'}) tr.addElement(tc) p = P(stylename=tablecontents) tc.addElement(p)
def s_html_table(self, tag, attrs): e = table.Table() self.curr.addElement(e) self.curr = e
filename = file.attrib["name"] res = {} for run in file.findall('./run'): solver = run.attrib['solver_id'] res[solver] = { 'runtime': int(run.find('./results/result[@name="runtime"]').text), 'answer': run.find('./results/result[@name="answer"]').text, } results.append([filename] + list(map(lambda x: res[x], solvers))) logging.info("Collected results for {} files".format(len(results))) doc = OpenDocumentSpreadsheet() create_cell_styles(doc) freeze_cells(doc, cols=1, rows=1) tbl = table.Table(name="all") tbl.addElement(create_row_head(solvers)) for r in results: tbl.addElement(create_row_data(r)) for s in [ 'count', 'sat', 'unsat', 'unknown', 'wrong', 'error', 'timeout', 'memout', 'segfault', 'abort' ]: tbl.addElement(create_stats(solvers, s, max=len(results) + 1)) logging.info("Saving spreadsheet to {}".format(args.output)) doc.spreadsheet.addElement(tbl) doc.save(args.output)