PowerPoint Tablolarında Satır ve Sütunları PHP Kullanarak Yönetme
Giriş
Aspose.Slides for PHP via Java, PowerPoint sunumlarında tablo yapısını ve biçimlendirmesini Table sınıfı aracılığıyla yönetmenizi sağlar. Bir başlık satırı belirleyebilir, satır ve sütunları kopyalayabilir veya kaldırabilir ve bir bütün satır ya da sütuna metin biçimlendirmesi uygulayabilirsiniz.
Bu makale bu işlemleri PHP örnekleriyle açıklar. Ayrıca bir tablonun stil ön ayarını nasıl alıp yeniden kullanabileceğinizi gösterir. Tablo satır ve sütun indeksleri sıfır tabanlıdır.
Satır Yüksekliğini Kontrol Et
Satırın minimum yüksekliğini puan cinsinden ayarlamak için Row::setMinimalHeight kullanın. Bu, sabit bir yükseklik değil, alt bir sınırdır. Row::getHeight gerçek yüksekliği döndürür. Satıra Table::getRows aracılığıyla erişin.
Örnek, ilk slayttaki ilk şekil olarak bir tablo içeren row-height-input.pptx dosyasını yükler. İlk satırı 70 puandan başlar. Hücreler 18 puanlık Arial metin, satır bölme ve üst‑alt 6 puan kenar boşluğu kullanır; ikinci sütundaki daha uzun metin birden çok satıra kayar. Örnek minimumu 100 puana yükseltir, ardından 20 puana düşürür, her değişiklikten sonra gerçek yüksekliği yazdırır ve her iki sonucu kaydeder.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("row-height-input.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$row = $table->getRows()->get_Item(0);
$row->setMinimalHeight(100);
printf("Increased: minimum = %.1f, actual = %.1f pt\n", java_values($row->getMinimalHeight()), java_values($row->getHeight()));
$presentation->save("row-height-increased.pptx", SaveFormat::Pptx);
$row->setMinimalHeight(20);
printf("Decreased: minimum = %.1f, actual = %.1f pt\n", java_values($row->getMinimalHeight()), java_values($row->getHeight()));
$presentation->save("row-height-decreased.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Sağlanan sunumla, minimumu artırmak satıra boşluk ekler. Azaltmak bu fazladan boşluğu kaldırır, ancak gerçek yükseklik 20 puandan büyük kalır çünkü metin ve hücre kenar boşlukları daha fazla alana ihtiyaç duyar. Minimumu yalnızca azaltmak, satırı içeriğinin gerektirdiği alanın altına zorlayamaz.
Gerçek yüksekliği etkileyen birkaç faktör:
- Metin ve yazı tipi boyutu: daha uzun metin, açık satır sonları veya daha büyük bir yazı tipi daha fazla düşey alan gerektirebilir.
- Satır bölme ve sütun genişliği: satır bölme etkinleştirildiğinde, Column::setWidth ile sütun genişliğini azaltmak daha fazla satır oluşturabilir. Daha geniş bir sütun düşey alana ihtiyaç duyulan miktarı azaltabilir.
- Hücre kenar boşlukları: Cell::setMarginTop ve Cell::setMarginBottom düşey boşluk ekler. Cell::setMarginLeft ve Cell::setMarginRight metin için kullanılabilir genişliği azaltır ve ek satır bölmelere neden olabilir.
Birleştirilmiş hücre olmayan bu tabloda, en çok düşey alana ihtiyaç duyan hücre tüm satır için içerik‑tabanlı alt sınırı belirler. Satırı kısaltmak için metni kısaltmanız, yazı tipi boyutunu veya kenar boşluklarını azaltmanız veya bir sütunu genişletmeniz gerekebilir.
Aşağıdaki görseller aynı tabloyu aynı ölçekte gösterir. İllüstre edilen sonuçlarda gerçek yükseklikler sırasıyla 70, 100 ve 55,2 puan idi: son satır 20 puanlık minimumdan daha yüksek kaldı. Metin ölçümleri ortamınızdaki yazı tiplerine bağlı olarak değişebilir. Kaydedilen sonuçları indirin: increased minimum ve decreased minimum.
| Orijinal: minimum 70 pt, gerçek 70 pt | Artırılmış: minimum 100 pt, gerçek 100 pt | Azaltılmış: minimum 20 pt, gerçek 55.2 pt |
|---|---|---|
![]() |
![]() |
![]() |
İlk Satırı Başlık Olarak Ayarlama
İlk satırı başlık biçimlendirmesi için işaretlemek üzere setFirstRow yöntemini kullanın. Görünümü, tabloya uygulanan tablo stiline bağlıdır.
- Sunumu, Presentation sınıfı ile yükleyin.
- İlk slayta erişin.
- Slayttaki ilk şekil olarak kaydedilen tabloya erişin.
- İlk satırı için başlık biçimlendirmesini etkinleştirin.
- Değiştirilen sunumu kaydedin.
Örnek, ilk slayttaki ilk şekil olarak bir tablo içeren table.pptx dosyasını gerektirir. İlk satır için başlık biçimlendirmesini etkinleştirir ve First_row_header.pptx dosyasını kaydeder.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$table->setFirstRow(true);
$presentation->save("First_row_header.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Tablo Satırını veya Sütununu Kopyalama
Satırları veya sütunları kopyalayarak içerik ve biçimlendirmelerini yeniden kullanabilirsiniz. Kopyayı tablonun sonuna ekleyebilir veya belirli bir konuma yerleştirebilirsiniz.
- Sunumu, Presentation sınıfı ile yükleyin.
- İlk slayta erişin.
- Sütun genişliklerini ve satır yüksekliklerini tanımlayın.
- Tabloyu addTable yöntemiyle ekleyin.
- Gerekli satırları kopyalayın.
- Gerekli sütunları kopyalayın.
- Değiştirilen sunumu kaydedin.
Örnek, en az bir slaytı olan Test.pptx dosyasını gerektirir. Üç sütun ve beş satırdan oluşan bir tablo oluşturur, boyutları puan cinsindendir. İlk satır ve sütunun kopyalarını sona ekler, ardından ikinci satır ve sütunun kopyalarını 3. indekste (dördüncü konum) ekler. Sonuçta tablo yedi satır ve beş sütun içerir. false argümanı, bitişik birleştirilmiş satır veya sütunlara kopyalamayı devre dışı bırakır; bu tabloda birleştirilmiş hücre yoktur.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("Test.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [50, 50, 50];
$rowHeights = [50, 30, 30, 30, 30];
$table = $slide->getShapes()->addTable(100, 50, $columnWidths, $rowHeights);
$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 Satır veya Sütun Kaldırma
Tabloda artık ihtiyaç duyulmayan satır veya sütunları kaldırın. Bir öğeyi kaldırmak, ardından gelen satırların veya sütunların indekslerini kaydırır.
- Sunumu, Presentation sınıfı ile oluşturun.
- İlk slayta erişin.
- Sütun genişliklerini ve satır yüksekliklerini tanımlayın.
- Tabloyu addTable yöntemiyle ekleyin.
- İkinci satırı ve ikinci sütunu kaldırın.
- Değiştirilen sunumu kaydedin.
Bu örnek, üç‑üç tablo oluşturur ve indeks 1’deki satırı ve sütunu kaldırarak TestTable_out.pptx dosyasında iki‑iki tablo bırakır. Boyutlar puan cinsindendir. false argümanı, bitişik birleştirilmiş satır veya sütunların kaldırılmasını devre dışı bırakır; bu tabloda birleştirilmiş hücre yoktur.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [100, 50, 30];
$rowHeights = [30, 50, 30];
$table = $slide->getShapes()->addTable(100, 100, $columnWidths, $rowHeights);
$table->getRows()->removeAt(1, false);
$table->getColumns()->removeAt(1, false);
$presentation->save("TestTable_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Tablo Satır Düzeyinde Metin Biçimlendirme Ayarlama
Bir bütün satıra metin biçimlendirmesi uygulayarak hücrelerinin tutarlı kalmasını sağlayın. Her hücreyi ayrı ayrı biçimlendirmeden yazı tipi özellikleri, paragraf biçimlendirmesi ve metin yönünü ayarlayabilirsiniz.
- Sunumu, Presentation sınıfı ile yükleyin.
- İlk slayttaki tabloya erişin.
- İlk satır için setFontHeight kullanın.
- İlk satır için setAlignment ve setMarginRight kullanın.
- İkinci satır için setTextVerticalType kullanın.
- Değiştirilen sunumu kaydedin.
Örnek, ilk slayttaki ilk şekil olarak bir tablo içeren ve en az iki satır bulunan table.pptx dosyasını gerektirir. İlk satıra 25 puanlık metin, sağ hizalama ve 20 puanlık sağ paragraf kenar boşluğu uygular, ardından ikinci satıra dikey metin ayarlar.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\PortionFormat;
use aspose\slides\ParagraphFormat;
use aspose\slides\TextFrameFormat;
use aspose\slides\TextAlignment;
use aspose\slides\TextVerticalType;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$portionFormat = new PortionFormat();
$portionFormat->setFontHeight(25);
$table->getRows()->get_Item(0)->setTextFormat($portionFormat);
$paragraphFormat = new ParagraphFormat();
$paragraphFormat->setAlignment(TextAlignment::Right);
$paragraphFormat->setMarginRight(20);
$table->getRows()->get_Item(0)->setTextFormat($paragraphFormat);
$textFrameFormat = new TextFrameFormat();
$textFrameFormat->setTextVerticalType(TextVerticalType::Vertical);
$table->getRows()->get_Item(1)->setTextFormat($textFrameFormat);
$presentation->save("row_formatting.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Tablo Sütun Düzeyinde Metin Biçimlendirme Ayarlama
Bir bütün sütuna metin biçimlendirmesi uygulayarak hücrelerinin tutarlı kalmasını sağlayın. Her hücreyi ayrı ayrı biçimlendirmeden yazı tipi özellikleri, paragraf biçimlendirmesi ve metin yönünü ayarlayabilirsiniz.
- Sunumu, Presentation sınıfı ile yükleyin.
- İlk slayttaki tabloya erişin.
- İlk sütun için setFontHeight kullanın.
- İlk sütun için setAlignment ve setMarginRight kullanın.
- İkinci sütun için setTextVerticalType kullanın.
- Değiştirilen sunumu kaydedin.
Örnek, ilk slayttaki ilk şekil olarak bir tablo içeren ve en az iki sütun bulunan table.pptx dosyasını gerektirir. İlk sütuna 25 puanlık metin, sağ hizalama ve 20 puanlık sağ paragraf kenar boşluğu uygular, ardından ikinci sütuna dikey metin ayarlar.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\PortionFormat;
use aspose\slides\ParagraphFormat;
use aspose\slides\TextFrameFormat;
use aspose\slides\TextAlignment;
use aspose\slides\TextVerticalType;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$portionFormat = new PortionFormat();
$portionFormat->setFontHeight(25);
$table->getColumns()->get_Item(0)->setTextFormat($portionFormat);
$paragraphFormat = new ParagraphFormat();
$paragraphFormat->setAlignment(TextAlignment::Right);
$paragraphFormat->setMarginRight(20);
$table->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
$textFrameFormat = new TextFrameFormat();
$textFrameFormat->setTextVerticalType(TextVerticalType::Vertical);
$table->getColumns()->get_Item(1)->setTextFormat($textFrameFormat);
$presentation->save("column_formatting.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Tablo Stil Özelliklerini Almak
Bir tabloya uygulanmış ön ayarı alıp başka bir tabloya yeniden uygulamak için getStylePreset yöntemini kullanın. Bu, bireysel hücre biçimlendirme geçersiz kılmaları yerine ön ayarı tanımlar.
Örnek bir tablo oluşturur, TableStylePreset::DarkStyle1 uygular ve ön ayarı geri okur. DarkStyle1 değerine karşılık gelen tam sayı değerini yazar ve tabloyu table.pptx dosyasına kaydeder.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\TableStylePreset;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [100, 150];
$rowHeights = [5, 5, 5];
$table = $slide->getShapes()->addTable(10, 10, $columnWidths, $rowHeights);
$table->setStylePreset(TableStylePreset::DarkStyle1);
$stylePreset = $table->getStylePreset();
echo java_values($stylePreset) . PHP_EOL;
$presentation->save("table.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
SSS
Mevcut bir tabloya PowerPoint temaları/stilleri uygulayabilir miyim?
Evet. Tablo, slayt/layout/ana tema miras alır ve bu temanın üzerine dolgu, kenarlık ve metin renklerini hâlâ geçersiz kılabilirsiniz.
Tablo satırlarını Excel’deki gibi sıralayabilir miyim?
Hayır, Aspose.Slides tabloları yerleşik sıralama veya filtreleme içermez. Verilerinizi önce bellekte sıralayın, ardından tablo satırlarını o sırayla yeniden doldurun.
Belirli hücrelerde özel renkler tutarak satır‑sütun şeritleri (banded) kullanabilir miyim?
Evet. Şeritli sütunları etkinleştirin, ardından belirli hücreleri yerel biçimlendirme ile geçersiz kılın; hücre‑düzeyi biçimlendirme tablo stiline göre önceliklidir.


