2017-07-25 70 views
1

我想創建一個表來儘可能短,它都不可能,即具有最小行高度可能的,而安裝在規定的尺寸規定的文本。我使用此代碼:蟒蛇,PPTX表 - 保持行的高度儘可能小

我初始化我的表:

init_table_width = prs.slide_width - Inches(0.2) 
graphicframe = slide.shapes.add_table(rows = len(biosets) + 1, cols=5, left=Inches(0.1), top=Inches(.76), width=init_table_width, height=prs.slide_height - Inches(.76 + 3.2)) 
table = graphicframe.table 

我然後填充表,並設置單元格屬性是這樣的:

for i in range(len(biosets)): 
    new_row = ['Bioset'+str(i+1)+': '+biosets[i], studies[i], correlation[i], common_genes[i], pvals[i]] 
    rownum += 1 
    for col_index, col_name in enumerate(new_row): 
     cell = table.cell(rownum, col_index) 
     cell.text = col_name 
     cell.margin_left = cell.margin_right = cell.margin_top = cell.margin_bottom = 0; 
     cell.text_frame.paragraphs[0].font.size = Pt(7.5) 

當我打開PPT演示,表比我想要的高。我可以拖動桌子的底部並減少自動創建桌子的高度。爲什麼有額外的高度可以減少,如果我將邊距設置爲0?創建的表格的高度大於爲表格初始化的高度;當我手動拖動表格高度時,高度低於爲表格初始化的高度。這意味着它可以將我的所有內容放入我想要的尺寸的表格中。文本沒有換成幾行,這可以解釋爲什麼它從原始大小擴展。即便如此,如果我已經將單元格邊距設置爲0,爲什麼還有一些額外的高度可以拖動和減少?什麼因素促成了這一點,我該如何擺脫它?我不想硬編碼row.height,因爲我不知道什麼時候文本將換到兩行。

回答

1

我想出如果我初始化該表到不可能的小的高度(參見高度= 1以下),時生成將具有緊湊的行高度儘可能的表。

graphicframe = slide.shapes.add_table(len(biosets) + 1, cols=5, left=Inches(0.1), top=Inches(.76), width=init_table_width, height=1)