コード例 #1
0
ファイル: shapetree.py プロジェクト: castaway/python-pptx
 def add_table(self, rows, cols, left, top, width, height):
     """
     Add table shape with the specified number of *rows* and *cols* at the
     specified position with the specified size. *width* is evenly
     distributed between the *cols* columns of the new table. Likewise,
     *height* is evenly distributed between the *rows* rows created.
     """
     id = self._next_shape_id
     name = 'Table %d' % (id-1)
     graphicFrame = CT_GraphicalObjectFrame.new_table(
         id, name, rows, cols, left, top, width, height)
     self._spTree.append(graphicFrame)
     table = Table(graphicFrame, self)
     self._shapes.append(table)
     return table
コード例 #2
0
ファイル: test_graphfrm.py プロジェクト: castaway/python-pptx
 def test_has_table_return_value(self):
     """CT_GraphicalObjectFrame.has_table property has correct value"""
     # setup ------------------------
     id_, name = 9, 'Table 8'
     left, top, width, height = 111, 222, 333, 444
     tbl_uri = 'http://schemas.openxmlformats.org/drawingml/2006/table'
     chart_uri = 'http://schemas.openxmlformats.org/drawingml/2006/chart'
     graphicFrame = CT_GraphicalObjectFrame.new_graphicFrame(
         id_, name, left, top, width, height)
     graphicData = graphicFrame[qn('a:graphic')].graphicData
     # verify -----------------------
     graphicData.set('uri', tbl_uri)
     assert_that(graphicFrame.has_table, is_(equal_to(True)))
     graphicData.set('uri', chart_uri)
     assert_that(graphicFrame.has_table, is_(equal_to(False)))
コード例 #3
0
ファイル: test_graphfrm.py プロジェクト: castaway/python-pptx
 def test_new_table_generates_correct_xml(self):
     """CT_GraphicalObjectFrame.new_table() returns correct XML"""
     # setup ------------------------
     id_, name = 9, 'Table 8'
     rows, cols = 2, 3
     left, top, width, height = 111, 222, 334, 445
     xml = (
         '<p:graphicFrame %s>\n  <p:nvGraphicFramePr>\n    <p:cNvP''r id="'
         '%d" name="%s"/>\n    <p:cNvGraphicFramePr>\n      <a:graphicFram'
         'eLocks noGrp="1"/>\n    </p:cNvGraphicFramePr>\n    <p:nvPr/>\n '
         ' </p:nvGraphicFramePr>\n  <p:xfrm>\n    <a:off x="%d" y="%d"/>\n'
         '    <a:ext cx="%d" cy="%d"/>\n  </p:xfrm>\n  <a:graphic>\n    <a'
         ':graphicData uri="http://schemas.openxmlformats.org/drawingml/20'
         '06/table">\n      <a:tbl>\n        <a:tblPr firstRow="1" bandRow'
         '="1">\n          <a:tableStyleId>{5C22544A-7EE6-4342-B048-85BDC9'
         'FD1C3A}</a:tableStyleId>\n        </a:tblPr>\n        <a:tblGrid'
         '>\n          <a:gridCol w="111"/>\n          <a:gridCol w="111"/'
         '>\n          <a:gridCol w="112"/>\n        </a:tblGrid>\n       '
         ' <a:tr h="222">\n          <a:tc>\n            <a:txBody>\n     '
         '         <a:bodyPr/>\n              <a:lstStyle/>\n             '
         ' <a:p/>\n            </a:txBody>\n            <a:tcPr/>\n       '
         '   </a:tc>\n          <a:tc>\n            <a:txBody>\n          '
         '    <a:bodyPr/>\n              <a:lstStyle/>\n              <a:p'
         '/>\n            </a:txBody>\n            <a:tcPr/>\n          </'
         'a:tc>\n          <a:tc>\n            <a:txBody>\n              <'
         'a:bodyPr/>\n              <a:lstStyle/>\n              <a:p/>\n '
         '           </a:txBody>\n            <a:tcPr/>\n          </a:tc>'
         '\n        </a:tr>\n        <a:tr h="223">\n          <a:tc>\n   '
         '         <a:txBody>\n              <a:bodyPr/>\n              <a'
         ':lstStyle/>\n              <a:p/>\n            </a:txBody>\n    '
         '        <a:tcPr/>\n          </a:tc>\n          <a:tc>\n        '
         '    <a:txBody>\n              <a:bodyPr/>\n              <a:lstS'
         'tyle/>\n              <a:p/>\n            </a:txBody>\n         '
         '   <a:tcPr/>\n          </a:tc>\n          <a:tc>\n            <'
         'a:txBody>\n              <a:bodyPr/>\n              <a:lstStyle/'
         '>\n              <a:p/>\n            </a:txBody>\n            <a'
         ':tcPr/>\n          </a:tc>\n        </a:tr>\n      </a:tbl>\n   '
         ' </a:graphicData>\n  </a:graphic>\n</p:graphicFrame>\n' %
         (nsdecls('a', 'p'), id_, name, left, top, width, height)
     )
     # exercise ---------------------
     graphicFrame = CT_GraphicalObjectFrame.new_table(
         id_, name, rows, cols, left, top, width, height)
     # verify -----------------------
     self.assertEqualLineByLine(xml, graphicFrame)
コード例 #4
0
ファイル: test_graphfrm.py プロジェクト: castaway/python-pptx
 def test_new_graphicFrame_generates_correct_xml(self):
     """CT_GraphicalObjectFrame.new_graphicFrame() returns correct XML"""
     # setup ------------------------
     id_, name = 9, 'Table 8'
     left, top, width, height = 111, 222, 333, 444
     xml = (
         '<p:graphicFrame %s>\n  <p:nvGraphicFramePr>\n    <p:cNvPr id="%d'
         '" name="%s"/>\n    <p:cNvGraphicFramePr>\n      <a:graphicFrameL'
         'ocks noGrp="1"/>\n    </p:cNvGraphicFramePr>\n    <p:nvPr/>\n  <'
         '/p:nvGraphicFramePr>\n  <p:xfrm>\n    <a:off x="%d" y="%d"/>\n  '
         '  <a:ext cx="%d" cy="%d"/>\n  </p:xfrm>\n  <a:graphic>\n    <a:g'
         'raphicData/>\n  </a:graphic>\n</p:graphicFrame>\n' %
         (nsdecls('a', 'p'), id_, name, left, top, width, height)
     )
     # exercise ---------------------
     graphicFrame = CT_GraphicalObjectFrame.new_graphicFrame(
         id_, name, left, top, width, height)
     # verify -----------------------
     self.assertEqualLineByLine(xml, graphicFrame)