Cześć, stworzyłem pptx z tabelami i potrzebuje się dowiedzieć jaki rozmiar ma dana tabela po wstawieniu do niej tekstu by na podstawie tego móc dopasować drugą tabele która będzie pod pierwszą tabelą. Jakieś pomysły ?
sys.getsizeof()
próbuje tą funkcją i ciągle pokazuje mi ten sam rozmiar przy każdym przypadku. To jest kawałek z kodu (tekst do tabeli pobieram z excela, a literka k==2
to jest konkretna tabela w pptx)
for row in shape.table.rows:
for cell in row.cells:
if k == 2:
cell.text = ws.cell(i, project_d).value
if cell.text == "None":
cell.text = "No data"
for paragraph in cell.text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(font_size)
run.font.name = 'Arial'
print(sys.getsizeof(shape.table.rows))
próbuje też tego:
print("width is %s cm" % shape.width.cm)
print("height is %s cm" % shape.height.cm)
ale cały czas pokazuje te same wartości
a sys.getsizeof(shape.table)
??
Niestety dalej pokazuje tą samą wartość i nie wiem czy to coś nie tak z tabelą jest czy z kodem. Kod dodaje tekst i w zależności od ilości tekstu powiększa tabele a twoja funkcja cały czas pokazuje tę samą wartość tak jakby nie widział żeby tabela się zwiększyła :/
Tu jest większość kodu może tu coś jest nie tak xd
prs = Presentation("IP template_v5_v13.pptx")
slides = prs.slides
slide1 = slides[0]
j = 1
for shape in slide1.shapes:
if j == 3:
k = 1
for row in shape.table.rows:
for cell in row.cells:
if k == 1:
for paragraph in cell.text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(14)
run.font.name = 'Arial'
if k == 2:
cell.text = ws.cell(i, project_d).value
if cell.text == "None":
cell.text = "No data"
for paragraph in cell.text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(font_size)
run.font.name = 'Arial'
print(sys.getsizeof(shape.table))
k = k + 1
Tabela jest tak jakby podzielona na 2 części stąd k==1
i k==2
. Przy k == 1
jest tytuł tabeli (on jest już tam wpisany tylko program zmienia mu czcionek itd.) Przy k==2
dodaje tekst z Excela powiększając tę tabele w zależności od ilości tekstu
też pomyślałem żeby policzył mi ilość enterów w tej tabeli
count = 0
for line in shape:
if line != "\n":
count += 1
print('Total Lines', count)
ale wychodzi z tego tylko to (przy każdym przykładzie):
Total Lines 1
Total Lines 2