Esempio n. 1
0
    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
Esempio n. 2
0
    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())
Esempio n. 3
0
    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)
Esempio n. 4
0
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()
Esempio n. 5
0
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()
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 8
0
    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)
Esempio n. 9
0
    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
Esempio n. 10
0
    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)
Esempio n. 11
0
 def s_html_table(self, tag, attrs):
     e = table.Table()
     self.curr.addElement(e)
     self.curr = e
Esempio n. 12
0
    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)