PHP を使用して PowerPoint テーブルの行と列を管理する
Contents
[
Hide
]
PowerPoint プレゼンテーションでテーブルの行と列を管理できるように、Aspose.Slides は テーブル クラスやその他多数の型を提供しています。
最初の行をヘッダーとして設定
- プレゼンテーション クラスのインスタンスを作成し、プレゼンテーションを読み込みます。
- インデックスを使用してスライドの参照を取得します。
- テーブル オブジェクトを作成し、null に設定します。
- すべての シェイプ オブジェクトを走査し、対象のテーブルを見つけます。
- テーブルの最初の行をヘッダーとして設定します。
この PHP コードは、テーブルの最初の行をヘッダーとして設定する方法を示しています:
# Presentation クラスのインスタンスを作成します
$pres = new Presentation("table.pptx");
try {
# 最初のスライドにアクセスします
$sld = $pres->getSlides()->get_Item(0);
# null の TableEx を初期化します
$tbl = null;
# シェイプを反復処理し、テーブルへの参照を設定します
foreach($sld->getShapes() as $shp) {
if (java_instanceof($shp, new JavaClass("com.aspose.slides.Table"))) {
$tbl = $shp;
# テーブルの最初の行をヘッダーとして設定します
$tbl->setFirstRow(true);
}
}
# プレゼンテーションをディスクに保存します
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
テーブル行または列のクローン作成
- プレゼンテーション クラスのインスタンスを作成し、プレゼンテーションを読み込みます。
- インデックスを使用してスライドの参照を取得します。
columnWidthの配列を定義します。rowHeightの配列を定義します。- addTable メソッドを使用して、スライドに テーブル オブジェクトを追加します。
- テーブル行をクローンします。
- テーブル列をクローンします。
- 変更されたプレゼンテーションを保存します。
この PHP コードは、PowerPoint テーブルの行または列をクローンする方法を示しています:
# Presentation クラスのインスタンス化
$pres = new Presentation("Test.pptx");
try {
# 最初のスライドにアクセス
$sld = $pres->getSlides()->get_Item(0);
# 列の幅と行の高さを定義
$dblCols = array(50, 50, 50 );
$dblRows = array(50, 30, 30, 30, 30 );
# スライドにテーブル シェイプを追加
$table = $sld->getShapes()->addTable(100, 50, $dblCols, $dblRows);
# 行 1 のセル 1 にテキストを追加
$table->get_Item(0, 0)->getTextFrame()->setText("Row 1 Cell 1");
# 行 1 のセル 2 にテキストを追加
$table->get_Item(1, 0)->getTextFrame()->setText("Row 1 Cell 2");
# テーブルの末尾に行 1 をクローン
$table->getRows()->addClone($table->getRows()->get_Item(0), false);
# 行 2 のセル 1 にテキストを追加
$table->get_Item(0, 1)->getTextFrame()->setText("Row 2 Cell 1");
# 行 2 のセル 2 にテキストを追加
$table->get_Item(1, 1)->getTextFrame()->setText("Row 2 Cell 2");
# 行 2 をテーブルの 4 行目としてクローン
$table->getRows()->insertClone(3, $table->getRows()->get_Item(1), false);
# 末尾に最初の列をクローン
$table->getColumns()->addClone($table->getColumns()->get_Item(0), false);
# 4 列目のインデックスに 2 番目の列をクローン
$table->getColumns()->insertClone(3, $table->getColumns()->get_Item(1), false);
# プレゼンテーションをディスクに保存
$pres->save("table_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
テーブルから行または列を削除
- プレゼンテーション クラスのインスタンスを作成し、プレゼンテーションを読み込みます。
- インデックスを使用してスライドの参照を取得します。
columnWidthの配列を定義します。rowHeightの配列を定義します。- addTable メソッドを使用して、スライドに テーブル オブジェクトを追加します。
- テーブル行を削除します。
- テーブル列を削除します。
- 変更されたプレゼンテーションを保存します。
この PHP コードは、テーブルから行または列を削除する方法を示しています:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$colWidth = array(100, 50, 30 );
$rowHeight = array(30, 50, 30 );
$table = $slide->getShapes()->addTable(100, 100, $colWidth, $rowHeight);
$table->getRows()->removeAt(1, false);
$table->getColumns()->removeAt(1, false);
$pres->save("TestTable_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
テーブル行レベルでのテキスト書式設定
- プレゼンテーション クラスのインスタンスを作成し、プレゼンテーションを読み込みます。
- インデックスを使用してスライドの参照を取得します。
- スライドから対象の テーブル オブジェクトにアクセスします。
- 最初の行のセルに対して setFontHeight(float value) を設定します。
- 最初の行のセルに対して setAlignment(int value) と setMarginRight(float value) を設定します。
- 2 行目のセルに対して setTextVerticalType(byte value) を設定します。
- 変更されたプレゼンテーションを保存します。
この PHP コードは操作をデモンストレーションします。
# Presentation クラスのインスタンスを作成します
$pres = new Presentation();
try {
# 最初のスライドの最初のシェイプがテーブルであると仮定します
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# 最初の行のセルのフォント高さを設定します
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getRows()->get_Item(0)->setTextFormat($portionFormat);
# 最初の行のセルのテキスト配置と右マージンを設定します
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getRows()->get_Item(0)->setTextFormat($paragraphFormat);
# 2 行目のセルのテキストの垂直方向タイプを設定します
$textFrameFormat = new TextFrameFormat();
$textFrameFormat::setTextVerticalType(TextVerticalType::Vertical);
$someTable->getRows()->get_Item(1)->setTextFormat($textFrameFormat);
# プレゼンテーションをディスクに保存します
$pres->save("result.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
テーブル列レベルでのテキスト書式設定
- プレゼンテーション クラスのインスタンスを作成し、プレゼンテーションを読み込みます。
- インデックスを使用してスライドの参照を取得します。
- スライドから対象の テーブル オブジェクトにアクセスします。
- 最初の列のセルに対して setFontHeight(float value) を設定します。
- 最初の列のセルに対して setAlignment(int value) と setMarginRight(float value) を設定します。
- 2 列目のセルに対して setTextVerticalType(byte value) を設定します。
- 変更されたプレゼンテーションを保存します。
この PHP コードは操作をデモンストレーションします:
# Presentation クラスのインスタンスを作成します
$pres = new Presentation();
try {
# 最初のスライドの最初のシェイプがテーブルであると仮定します
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# 最初の列のセルのフォント高さを設定します
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getColumns()->get_Item(0)->setTextFormat($portionFormat);
# 1 回の呼び出しで最初の列のセルのテキスト配置と右マージンを設定します
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
# 2 列目のセルのテキストの垂直方向タイプを設定します
$textFrameFormat = new TextFrameFormat();
$textFrameFormat::setTextVerticalType(TextVerticalType::Vertical);
$someTable->getColumns()->get_Item(1)->setTextFormat($textFrameFormat);
$pres->save("result.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
テーブル スタイル プロパティの取得
Aspose.Slides はテーブルのスタイル プロパティを取得できるため、取得した詳細を別のテーブルや他の場所で使用できます。この PHP コードは、テーブルのプリセット スタイルからスタイル プロパティを取得する方法を示しています:
$pres = new Presentation();
try {
$table = $pres->getSlides()->get_Item(0)->getShapes()->addTable(10, 10, array(100, 150 ), array(5, 5, 5 ));
$table->setStylePreset(TableStylePreset->DarkStyle1);// デフォルトのスタイルプリセットテーマを変更する
$pres->save("table.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
既に作成されたテーブルに PowerPoint のテーマ/スタイルを適用できますか?
はい。テーブルはスライド/レイアウト/マスタ テーマを継承しますが、その上で塗りつぶし、枠線、テキスト色を上書きすることも可能です。
Excel のようにテーブル行をソートできますか?
いいえ、Aspose.Slides のテーブルには組み込みのソートやフィルタ機能はありません。データをメモリ内で先にソートし、その順序でテーブル行を再配置してください。
特定のセルにカスタムカラーを保持しながら、帯状(ストライプ)列を設定できますか?
はい。帯状列を有効にした後、ローカル書式で特定のセルを上書きできます。セル単位の書式がテーブル スタイルより優先されます。