簡體   English   中英

使用python pptx自動調整列寬

[英]Autofit column width with python pptx

我已將表格插入到pptx文件中,並且我想自動調整列寬,以使列單元格中的所有文本都無需換行。 因此,我只是在搜索整個列的自動調整。

到目前為止,我有:

from pptx import Presentation
from pptx.util import Inches
from PandasToPowerpoint import df_to_table
import pandas as pd

d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)

top = Inches(2.5)
left = Inches(0.48)
width = Inches(12.3)
height = Inches(3.0) 
df_to_table(slide, df.reset_index(), left, top, width, height)


for shape in slide.shapes:
    if shape.has_table:
        table = shape.table
        for column in table.columns: 
            column.width=Inches(3)

prs.save('test.pptx')   

我試過了:

column.text_frame.auto_size = True
column.auto_size = True
column.fit_text= True

但它們都不起作用。 如果自動調整不起作用,我還可以遍歷一列的所有單元格,並標識出具有最長文本的單元格,然后將整個列寬調整為該文本。 但是我也找不到正確的命令來獲取文本寬度...任何想法表示贊賞!

我知道您正在尋找一種調整列寬的解決方案,但是如何調整行高:

import pptx.enum.text MSO_AUTO_SIZE

table.cell(row, column).text_frame.auto_size = MSO_AUTO_SIZE.SHAPE_TO_FIT_TEXT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM