Python-pptx Table
Table對象
使用SlideShapes上的add_table()方法將Table對象添加到幻燈片。
class pptx.table.Table
一個DrawingML表對象。不能直接構造,
請使用Slide.shapes.add_table()將表添加到幻燈片。
- cell(row_idx, col_idx)
返回位于row_idx,col_idx的單元格。
返回值是_Cell的實例。
row_idx和col_idx是從零開始的,
例如 cell(0,0)是表格中左上方的單元格。
- columns
表示表列的_Column對象集合的只讀引用。
_Column對象使用列表表示法訪問,
例如 col = tbl.columns [0]。
- first_col
讀/寫布爾屬性,當為true時,
指示第一列的格式應與表格最左側的側欄相同。
- first_row
讀/寫布爾屬性,當為true時,
指示第一行應采用不同的格式,例如 用于列標題。
- horz_banding
讀/寫布爾值屬性,當為true時,指示表的行應以交替的陰影顯示。
- iter_cells()
為該表中的每個單元格生成_Cell對象。
每個網格單元都是按從左到右,從上到下的順序生成的。
- last_col
讀/寫布爾屬性,當為true時,
指示最后一列的格式應不同,例如表最右邊的總計行。
- last_row
讀/寫布爾屬性,當為true時,
指示最后一行的格式應不同,例如表底部的總計行。
- rows
表示表行的_Row對象集合的只讀引用。
_Row對象使用列表表示法訪問,例如 row = tbl.rows [0]。
- vert_banding
讀/寫布爾屬性,當為true時,指示表的列應以交替的陰影顯示。
_Column對象
class pptx.table._Column
表格列
- width
列的寬度,以英制公制單位(EMU)
_Row對象
class pptx.table._Row
表格行
- cells
表示表行的_Row對象集合的只讀引用。
_Row對象使用列表表示法訪問,例如 row = tbl.rows [0]。
- height
行的高度,以英制公制單位(EMU)
_Cell對象
_Cell對象表示表中特定行/列位置的單個表單元格。
_Cell對象不是直接構造的。
使用Table.cell()方法可以獲得對_Cell對象的引用,
并指定單元格的行/列位置。
也可以使用_Row.cells集合獲得單元對象。
class pptx.table._Cell(tc, parent)
表格單元格
- fill
此單元格的FillFormat實例,提供對填充屬性(例如前景色)的訪問。
- is_merge_origin
如果此單元格是合并單元格的左上角網格單元格,則為true。
- is_spanned
如果此單元格由合并源單元格跨越,則為true。
合并源單元在其合并范圍內“跨越”其他網格單元,
從而消耗其面積并“遮蔽”跨過的網格單元。
請注意,對于合并源單元格,此值為False。
合并源單元格跨其他網格單元,但本身不是跨度單元。
- margin_left
讀/寫單元格左邊界的整數(shù)值作為長度值對象。
如果指定為None,則使用默認值,左右邊距為0.1英寸,頂部和底部為0.05英寸。
- margin_right
單元格的右邊距。
- margin_top
單元格的上邊距。
- margin_bottom
單元格的底邊距。
- merge(other_cell)
創(chuàng)建從此單元格到other_cell的合并單元格。
此單元格和other_cell指定合并的單元格范圍的相對角。
可以以任意順序指定單元區(qū)域的任一對角線,
例如 self =右下角,other_cell =左上角,依此類推。
如果指定范圍在其范圍內的任何位置已經包含合并的單元格,
或者other_cell與self不在同一表中,則引發(fā)ValueError。
- span_height
此單元格跨越的int行數(shù)。
此屬性的值在.is_merge_origin不是True的單元格上可能會引起誤解(通常為1),
因為只有合并起源的單元格包含完整的跨度信息。
此屬性僅適用于通過測試.is_merge_origin已知為合并起點的單元格。
- span_width
此單元格跨越的int列數(shù)。
此屬性的值在.is_merge_origin不是True的單元格上可能會引起誤解(通常為1),
因為只有合并起源的單元格包含完整的跨度信息。
此屬性僅適用于通過測試.is_merge_origin已知為合并起點的單元格。
- split()
從此(合并來源)單元中刪除合并。
該對象表示的合并單元將被“取消合并",
從而為先前由該合并所跨越的每個網格單元生成一個單獨的未合并單元。
當此單元格不是合并源單元格時,引發(fā)ValueError。
在調用之前使用.is_merge_origin進行測試。
- text
單元格內容的Unicode(在Python 3中為str)表示形式。
返回的字符串將包含換行符("\n"),分隔每個段落,
并為單元格文本中的每個換行符(軟回車)提供一個垂直制表符("\v")。
分配給文本將替換當前包含在單元格中的所有文本。
分配的文本中的換行符("\n")導致新段落開始。
分配的文本中的垂直制表符("\v")導致插入換行符(軟回車)。
(垂直制表符顯示在從PowerPoint復制的剪貼板文本中,作為其換行符的編碼。)
可以分配字節(jié)(Python 2 str)或unicode(Python 3 str)。
字節(jié)可以是7位ASCII或UTF-8編碼的8位字節(jié)。
假定采用UTF-8編碼(正確解碼ASCII),則將字節(jié)值轉換為unicode。
- text_frame
包含出現(xiàn)在單元格中的文本的TextFrame實例。
- vertical_anchor
此單元格的垂直對齊。
此值是MSO_VERTICAL_ANCHOR枚舉的成員或“無"。
值None表示該單元格沒有明確應用垂直錨設置,
并且其有效值是從其樣式層次結構祖先繼承的。
為該屬性分配None將清除任何明確應用的垂直錨設置,
并恢復其有效值的繼承。
Code
#!/usr/bin/python #coding:utf-8 from pptx import Presentation from pptx.util import Inches# 加載一個ppt文件 prs = Presentation('pptx/zf.pptx')# 使用Presentation的slides屬性訪問slides對象 slides = prs.slides# 返回通過索引slides中的第四個對象 slide = slides[4]# 返回包含出現(xiàn)在此幻燈片上的形狀對象序列的幻燈片幻燈片實例。 shapes = slide.shapes# 表格的行列 rows,cols = 3,5 # 預設位置及大小 left,top,width,height = Inches(0.5), Inches(1), Inches(4), Inches(3) # 添加一個GraphicFrame對象, # 其中包含一個具有指定行數(shù)和cols以及指定位置和大小的表。 # 寬度均勻地分布在新表的列之間。同樣地,高度均勻地分布在行之間。 # 請注意,必須使用返回的GraphicFrame形狀上的.table屬性來訪問所包含的表對象。 shapes.add_table(rows,cols,left,top,width,height )# 返回通過索引shapes中的第一個對象 shape = shapes[0]# Table此圖形框中包含的對象。 # 如果此圖形框架不包含表格,則引發(fā)ValueError。 table = shape.table# 返回位于row_idx,col_idx的單元格。 # 返回值是_Cell的實例。row_idx和col_idx是從零開始的, # 例如 cell(0,0)是表格中左上方的單元格。 row_idx = 1 col_idx = 2 cell = table.cell(row_idx,col_idx )# 表示表列的_Column對象集合的只讀引用。 # _Column對象使用列表表示法訪問,例如 col = tbl.columns [0]。 columns = table.columns column = columns[0]# 讀/寫布爾屬性,當為true時, # 指示第一列的格式應與表格最左側的側欄相同。 table.first_col = True first_col = table.first_col# 讀/寫布爾屬性,當為true時, # 指示第一行應采用不同的格式,例如 用于列標題。 table.first_row = False first_row = table.first_row# 讀/寫布爾值屬性,當為true時,指示表的行應以交替的陰影顯示。 table.horz_banding = False horz_banding = table.horz_banding# 為該表中的每個單元格生成_Cell對象。 # 每個網格單元都是按從左到右,從上到下的順序生成的。 iter_cells = table.iter_cells# 讀/寫布爾屬性,當為true時, # 指示最后一列的格式應不同,例如表最右邊的總計行。 table.last_col = True last_col = table.last_col# 讀/寫布爾屬性,當為true時, # 指示最后一行的格式應不同,例如表底部的總計行。 table.last_row = True last_row = table.last_row# 表示表行的_Row對象集合的只讀引用。 # _Row對象使用列表表示法訪問,例如 row = tbl.rows [0]。 rows = table.rows row = rows[0]# 讀/寫布爾屬性,當為true時,指示表的列應以交替的陰影顯示。 table.vert_banding = True vert_banding = table.vert_banding# 列的寬度,以英制公制單位(EMU) width = column.width# 對行中單元格集合的只讀引用。 # 使用列表表示法引用單個單元格,例如 單元格= row.cells [0]。 cells = row.cells cell = cells[0]# 行的高度,以英制公制單位(EMU) height = row.height# 此單元格的FillFormat實例,提供對填充屬性(例如前景色)的訪問。 fill = cell.fill# 如果此單元格是合并單元格的左上角網格單元格,則為true。 is_merge_origin = cell.is_merge_origin# 如果此單元格由合并源單元格跨越,則為true。 # 合并源單元在其合并范圍內“跨越"其他網格單元, # 從而消耗其面積并“遮蔽"跨過的網格單元。 # 請注意,對于合并源單元格,此值為False。 # 合并源單元格跨其他網格單元,但本身不是跨度單元。 is_spanned = cell.is_spanned# 讀/寫單元格左邊界的整數(shù)值作為長度值對象。 # 如果指定為None,則使用默認值,左右邊距為0.1英寸,頂部和底部為0.05英寸。 cell.margin_left = 91430 margin_left = cell.margin_left# 單元格的右邊距。 cell.margin_right = 91430 margin_right = cell.margin_right# 單元格的上邊距。 cell.margin_top = 91430 margin_top = cell.margin_top# 單元格的底邊距。 cell.margin_bottom = 91430 margin_bottom = cell.margin_bottom# 創(chuàng)建從此單元格到other_cell的合并單元格。 # 此單元格和other_cell指定合并的單元格范圍的相對角。 # 可以以任意順序指定單元區(qū)域的任一對角線, # 例如 self =右下角,other_cell =左上角,依此類推。 # 如果指定范圍在其范圍內的任何位置已經包含合并的單元格, # 或者other_cell與self不在同一表中,則引發(fā)ValueError。 other_cell = table.cell(2,2) cell.merge(other_cell)# 此單元格跨越的int行數(shù)。 # 此屬性的值在.is_merge_origin不是True的單元格上可能會引起誤解(通常為1), # 因為只有合并起源的單元格包含完整的跨度信息。 # 此屬性僅適用于通過測試.is_merge_origin已知為合并起點的單元格。 span_height = cell.span_height# 此單元格跨越的int列數(shù)。 # 此屬性的值在.is_merge_origin不是True的單元格上可能會引起誤解(通常為1), # 因為只有合并起源的單元格包含完整的跨度信息。 # 此屬性僅適用于通過測試.is_merge_origin已知為合并起點的單元格。 span_width = cell.span_width# 從此(合并來源)單元中刪除合并。 # 該對象表示的合并單元將被“取消合并", # 從而為先前由該合并所跨越的每個網格單元生成一個單獨的未合并單元。 # 當此單元格不是合并源單元格時,引發(fā)ValueError。 # 在調用之前使用.is_merge_origin進行測試。 cell.split()# 單元格內容的Unicode(在Python 3中為str)表示形式。 # 返回的字符串將包含換行符("\n"),分隔每個段落, # 并為單元格文本中的每個換行符(軟回車)提供一個垂直制表符("\v")。 # 分配給文本將替換當前包含在單元格中的所有文本。 # 分配的文本中的換行符("\n")導致新段落開始。 # 分配的文本中的垂直制表符("\v")導致插入換行符(軟回車)。 # (垂直制表符顯示在從PowerPoint復制的剪貼板文本中,作為其換行符的編碼。) # 可以分配字節(jié)(Python 2 str)或unicode(Python 3 str)。 # 字節(jié)可以是7位ASCII或UTF-8編碼的8位字節(jié)。 # 假定采用UTF-8編碼(正確解碼ASCII),則將字節(jié)值轉換為unicode。 cell.text = 'HaI\'s text' text = cell.text# 包含出現(xiàn)在單元格中的文本的TextFrame實例。 text_frame = cell.text_frame# 此單元格的垂直對齊。 # 此值是MSO_VERTICAL_ANCHOR枚舉的成員或“無"。 # 值None表示該單元格沒有明確應用垂直錨設置, # 并且其有效值是從其樣式層次結構祖先繼承的。 # 為該屬性分配None將清除任何明確應用的垂直錨設置, # 并恢復其有效值的繼承。 vertical_anchor = cell.vertical_anchor總結
以上是生活随笔為你收集整理的Python-pptx Table的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥云课练习题 用杂志拼接信件
- 下一篇: 使用C语言求斐波那契(Fibonacci