예제 #1
0
    def it_provides_access_to_its_cells(self, tbl_, tc_, _Cell_, cell_):
        row_idx, col_idx = 4, 2
        tbl_.tc.return_value = tc_
        _Cell_.return_value = cell_
        table = Table(tbl_, None)

        cell = table.cell(row_idx, col_idx)

        tbl_.tc.assert_called_once_with(row_idx, col_idx)
        _Cell_.assert_called_once_with(tc_, table)
        assert cell is cell_
예제 #2
0
    def it_provides_access_to_its_cells(self, tbl_, tc_, _Cell_, cell_):
        row_idx, col_idx = 4, 2
        tbl_.tc.return_value = tc_
        _Cell_.return_value = cell_
        table = Table(tbl_, None)

        cell = table.cell(row_idx, col_idx)

        tbl_.tc.assert_called_once_with(row_idx, col_idx)
        _Cell_.assert_called_once_with(tc_, table)
        assert cell is cell_
예제 #3
0
    def it_can_iterate_its_grid_cells(self, request, _Cell_):
        tbl = element("a:tbl/(a:tr/(a:tc,a:tc),a:tr/(a:tc,a:tc))")
        expected_tcs = tbl.xpath(".//a:tc")
        expected_cells = _Cell_.side_effect = [
            instance_mock(request, _Cell, name="cell%d" % idx) for idx in range(4)
        ]
        table = Table(tbl, None)

        cells = list(table.iter_cells())

        assert cells == expected_cells
        assert _Cell_.call_args_list == [call(tc, table) for tc in expected_tcs]
예제 #4
0
    def write_table(self, table: Table) -> None:
        """Write attributes to table object."""
        if self.first_row_header is not None:
            table._tbl.firstRow = self.first_row_header

        if self.col_banding is not None:
            table.vert_banding = self.col_banding

        if self.row_banding is not None:
            table.horz_banding = self.row_banding

        if self.width is not None:
            self._write_col_sizes(table)
        self._write_all_cells(table)
예제 #5
0
    def it_can_iterate_its_grid_cells(self, request, _Cell_):
        tbl = element('a:tbl/(a:tr/(a:tc,a:tc),a:tr/(a:tc,a:tc))')
        expected_tcs = tbl.xpath('.//a:tc')
        expected_cells = _Cell_.side_effect = [
            instance_mock(request, _Cell, name='cell%d' % idx)
            for idx in range(4)
        ]
        table = Table(tbl, None)

        cells = list(table.iter_cells())

        assert cells == expected_cells
        assert _Cell_.call_args_list == [
            call(tc, table) for tc in expected_tcs
        ]
예제 #6
0
파일: pptxtk.py 프로젝트: alexlewzey/mstk
def _populate_table(table: Table,
                    cols: List[str],
                    rows: List[str],
                    values: List[List[str]],
                    first_cell: str = ' ') -> Table:
    """populate the cells of a pptx table from lists"""
    table.cell(0, 0).text = str(first_cell)
    for j, col in enumerate(cols):
        table.cell(0, j + 1).text = str(col)
    for i, row in enumerate(rows):
        table.cell(i + 1, 0).text = str(row)
    for j in range(len(cols)):
        for i in range(len(rows)):
            table.cell(i + 1, j + 1).text = str(values[i][j])
    return table
예제 #7
0
 def table(self):
     """
     The |Table| object contained in this graphic frame. Raises
     |ValueError| if this graphic frame does not contain a table.
     """
     if not self.has_table:
         raise ValueError('shape does not contain a table')
     tbl = self._element.graphic.graphicData.tbl
     return Table(tbl, self)
예제 #8
0
    def generate_content(self, pptx_table: Table):
        for col_nr, pptx_col in enumerate(pptx_table.columns):
            pptx_col.width = self._column_widths[col_nr]

        for row_index, row in enumerate(self._rows):
            pptx_row: _Row = pptx_table.rows[row_index]
            pptx_row.height = row.height
            for col_index, row_cell in enumerate(row._row_cells):
                cell = pptx_table.cell(row_index, col_index)
                row_cell.apply_styles(cell)
예제 #9
0
    def it_provides_access_to_its_rows(self, request):
        rows_ = instance_mock(request, _RowCollection)
        _RowCollection_ = class_mock(request,
                                     "pptx.table._RowCollection",
                                     return_value=rows_)
        tbl = element("a:tbl")
        table = Table(tbl, None)

        rows = table.rows

        _RowCollection_.assert_called_once_with(tbl, table)
        assert rows is rows_
예제 #10
0
    def it_provides_access_to_its_columns(self, request):
        columns_ = instance_mock(request, _ColumnCollection)
        _ColumnCollection_ = class_mock(request,
                                        "pptx.table._ColumnCollection",
                                        return_value=columns_)
        tbl = element("a:tbl")
        table = Table(tbl, None)

        columns = table.columns

        _ColumnCollection_.assert_called_once_with(tbl, table)
        assert columns is columns_
예제 #11
0
 def dy_fixture(self, graphic_frame_):
     tbl_cxml = 'a:tbl/(a:tr{h=100},a:tr{h=200})'
     table = Table(element(tbl_cxml), graphic_frame_)
     expected_height = 300
     return table, expected_height
예제 #12
0
 def dx_fixture(self, graphic_frame_):
     tbl_cxml = 'a:tbl/a:tblGrid/(a:gridCol{w=111},a:gridCol{w=222})'
     table = Table(element(tbl_cxml), graphic_frame_)
     expected_width = 333
     return table, expected_width
예제 #13
0
 def boolprop_set_fixture(self, request):
     tbl_cxml, boolprop_name, new_value, expected_tbl_cxml = request.param
     table = Table(element(tbl_cxml), None)
     expected_xml = xml(expected_tbl_cxml)
     return table, boolprop_name, new_value, expected_xml
예제 #14
0
 def boolprop_get_fixture(self, request):
     tbl_cxml, boolprop_name, expected_value = request.param
     table = Table(element(tbl_cxml), None)
     return table, boolprop_name, expected_value
예제 #15
0
 def table(self):
     return Table(element('a:tbl'), None)
 def table(self):
     return Table(element("a:tbl"), None)