管理行和列
Contents
[
Hide
]
为了让您能够管理 PowerPoint 演示文稿中的表格行和列,Aspose.Slides 提供了 Table 类、ITable 接口及其他多种类型。
将第一行设置为标题
- 创建 Presentation 类的实例并加载演示文稿。
- 通过其索引获取幻灯片的引用。
- 创建一个 ITable 对象并将其设置为 null。
- 遍历所有 IShape 对象以找到相关表格。
- 将表格的第一行设置为其标题。
以下 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();
}
}
克隆表格的行或列
- 创建 Presentation 类的实例并加载演示文稿。
- 通过其索引获取幻灯片的引用。
- 定义
columnWidth
数组。 - 定义
rowHeight
数组。 - 通过 addTable 方法将 ITable 对象添加到幻灯片。
- 克隆表格行。
- 克隆表格列。
- 保存修改后的演示文稿。
以下 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("行 1 单元格 1");
# 向行 1 单元格 2 添加一些文本
$table->get_Item(1, 0)->getTextFrame()->setText("行 1 单元格 2");
# 在表格末尾克隆行 1
$table->getRows()->addClone($table->getRows()->get_Item(0), false);
# 向行 2 单元格 1 添加一些文本
$table->get_Item(0, 1)->getTextFrame()->setText("行 2 单元格 1");
# 向行 2 单元格 2 添加一些文本
$table->get_Item(1, 1)->getTextFrame()->setText("行 2 单元格 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();
}
}
从表格中删除行或列
- 创建 Presentation 类的实例并加载演示文稿。
- 通过其索引获取幻灯片的引用。
- 定义
columnWidth
数组。 - 定义
rowHeight
数组。 - 通过 addTable 方法将 ITable 对象添加到幻灯片。
- 删除表格行。
- 删除表格列。
- 保存修改后的演示文稿。
以下 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();
}
}
在表格行级别设置文本格式
- 创建 Presentation 类的实例并加载演示文稿。
- 通过其索引获取幻灯片的引用。
- 从幻灯片访问相关的 ITable 对象。
- 设置第一行单元格的 setFontHeight(float value)。
- 设置第一行单元格的 setAlignment(int value) 和 setMarginRight(float value)。
- 设置第二行单元格的 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);
# 设置第二行单元格的文本垂直类型
$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();
}
}
在表格列级别设置文本格式
- 创建 Presentation 类的实例并加载演示文稿。
- 通过其索引获取幻灯片的引用。
- 从幻灯片访问相关的 ITable 对象。
- 设置第一列单元格的 setFontHeight(float value)。
- 在一次调用中设置第一列单元格的 setAlignment(int value) 和 setMarginRight(float value)。
- 设置第二列单元格的 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);
# 在一次调用中设置第一列单元格的文本对齐方式和右边距
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
# 设置第二列单元格的文本垂直类型
$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();
}
}