PowerPoint Tablolarında Satır ve Sütunları Python Kullanarak Yönetme
Giriş
PowerPoint sunumundaki bir tablonun satır ve sütunlarını yönetebilmeniz için Aspose.Slides, Table sınıfını ve birçok diğer türü sağlar.
İlk Satırı Üstbilgi Olarak Ayarla
- Sunumu yüklemek için Presentation sınıfının bir örneğini oluşturun.
- Dizini kullanarak bir slayta referans alın.
- Bir Table referansı oluşturun ve
Nonedeğerine atayın. - İlgili tabloyu bulmak için tüm Shape nesnelerini döngüyle gezinin.
- Tablonun ilk satırını üstbilgi olarak ayarlayın.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table
presentation = Presentation("table.pptx")
try:
slide = presentation.getSlides().get_Item(0)
table = None
for shape in slide.getShapes():
if isinstance(shape, Table):
table = shape
table.setFirstRow(True)
presentation.save("presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Bir Tablo Satırını veya Sütununu Kopyala
- Sunumu yüklemek için Presentation sınıfının bir örneğini oluşturun.
- Dizini kullanarak bir slayta referans alın.
- Sütun genişliklerinin bir listesini tanımlayın.
- Satır yüksekliklerinin bir listesini tanımlayın.
- addTable yöntemiyle slayta bir Table nesnesi ekleyin.
- Tablo satırını kopyalayın.
- Tablo sütununu kopyalayın.
- Değiştirilen sunumu kaydedin.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("Test.pptx")
try:
slide = presentation.getSlides().get_Item(0)
column_widths = [50, 50, 50]
row_heights = [50, 30, 30, 30, 30]
table = slide.getShapes().addTable(100, 50, column_widths, row_heights)
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1")
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2")
table.getRows().addClone(table.getRows().get_Item(0), False)
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1")
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2")
table.getRows().insertClone(3, table.getRows().get_Item(1), False)
table.getColumns().addClone(table.getColumns().get_Item(0), False)
table.getColumns().insertClone(3, table.getColumns().get_Item(1), False)
presentation.save("table_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Tablodan Bir Satır veya Sütun Kaldır
- Bir Presentation sınıfının örneğini oluşturun.
- Dizini kullanarak bir slayta referans alın.
- Sütun genişliklerinin bir listesini tanımlayın.
- Satır yüksekliklerinin bir listesini tanımlayın.
- addTable yöntemiyle slayta bir Table nesnesi ekleyin.
- Tablo satırını kaldırın.
- Tablo sütununu kaldırın.
- Değiştirilen sunumu kaydedin.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
column_widths = [100, 50, 30]
row_heights = [30, 50, 30]
table = slide.getShapes().addTable(100, 100, column_widths, row_heights)
table.getRows().removeAt(1, False)
table.getColumns().removeAt(1, False)
presentation.save("TestTable_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Tablo Satır Seviyesinde Metin Biçimlendirmesini Ayarla
- Sunumu yüklemek için Presentation sınıfının bir örneğini oluşturun.
- Dizini kullanarak bir slayta referans alın.
- Slayttan ilgili Table nesnesine erişin.
- İlk satır hücrelerinin yazı tipi yüksekliğini setFontHeight kullanarak ayarlayın.
- İlk satır hücrelerinin metin hizalamasını ve sağ kenar boşluğunu setAlignment ve setMarginRight kullanarak ayarlayın.
- İkinci satır hücrelerinin dikey metin tipini setTextVerticalType kullanarak ayarlayın.
- Değiştirilen sunumu kaydedin.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType
presentation = Presentation("table.pptx")
try:
shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
if isinstance(shape, Table):
table = shape
portion_format = PortionFormat()
portion_format.setFontHeight(25)
table.getRows().get_Item(0).setTextFormat(portion_format)
paragraph_format = ParagraphFormat()
paragraph_format.setAlignment(TextAlignment.Right)
paragraph_format.setMarginRight(20)
table.getRows().get_Item(0).setTextFormat(paragraph_format)
text_frame_format = TextFrameFormat()
text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
table.getRows().get_Item(1).setTextFormat(text_frame_format)
presentation.save("result.pptx", SaveFormat.Pptx)
else:
print("The first shape is not a table.")
finally:
presentation.dispose()
Tablo Sütun Seviyesinde Metin Biçimlendirmesini Ayarla
- Sunumu yüklemek için Presentation sınıfının bir örneğini oluşturun.
- Dizini kullanarak bir slayta referans alın.
- Slayttan ilgili Table nesnesine erişin.
- İlk sütun hücrelerinin yazı tipi yüksekliğini setFontHeight kullanarak ayarlayın.
- İlk sütun hücrelerinin metin hizalamasını ve sağ kenar boşluğunu setAlignment ve setMarginRight kullanarak ayarlayın.
- İkinci sütun hücrelerinin dikey metin tipini setTextVerticalType kullanarak ayarlayın.
- Değiştirilen sunumu kaydedin.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType
presentation = Presentation("table.pptx")
try:
shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
if isinstance(shape, Table):
table = shape
portion_format = PortionFormat()
portion_format.setFontHeight(25)
table.getColumns().get_Item(0).setTextFormat(portion_format)
paragraph_format = ParagraphFormat()
paragraph_format.setAlignment(TextAlignment.Right)
paragraph_format.setMarginRight(20)
table.getColumns().get_Item(0).setTextFormat(paragraph_format)
text_frame_format = TextFrameFormat()
text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
table.getColumns().get_Item(1).setTextFormat(text_frame_format)
presentation.save("result.pptx", SaveFormat.Pptx)
else:
print("The first shape is not a table.")
finally:
presentation.dispose()
Tablo Stil Özelliklerini Al
Aspose.Slides, bir tablonun stil özelliklerini almanıza olanak tanır, böylece bu ayrıntıları başka bir tablo için veya başka bir yerde kullanabilirsiniz. Bu Python kodu, bir tablo ön ayar stilinden stil özelliklerini nasıl alacağınızı gösterir:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, TableStylePreset
presentation = Presentation()
try:
column_widths = [100, 150]
row_heights = [5, 5, 5]
table = presentation.getSlides().get_Item(0).getShapes().addTable(10, 10, column_widths, row_heights)
table.setStylePreset(TableStylePreset.DarkStyle1)
style_preset = table.getStylePreset()
print(style_preset)
presentation.save("table.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
FAQ
Zaten oluşturulmuş bir tabloya PowerPoint temalarını/stillerini uygulayabilir miyim?
Evet. Tablo, slayt/layout/master temasını devralır ve yine de o tema üzerine dolgu, kenarlık ve metin renklerini geçersiz kılabilirsiniz.
Tablo satırlarını Excel gibi sıralayabilir miyim?
Hayır, Aspose.Slides tablolarında yerleşik sıralama veya filtreleme yoktur. Verilerinizi önce bellekte sıralayın, ardından tablo satırlarını o sırayla yeniden doldurun.
Belirli hücrelerde özel renkler tutarken şeritli (banded) sütunlar olabilir mi?
Evet. Şeritli sütunları etkinleştirin, ardından belirli hücreleri yerel biçimlendirme ile geçersiz kılın; hücre seviyesindeki biçimlendirme tablo stiline göre önceliklidir.