表格用于以行和列的形式很好地组织数据。此外,它们可以轻松地汇总要查看和分析的数据。 MS PowerPoint 还允许演示者在演示文稿中创建表格。因此,在本文中,您将学习如何使用 Java 在 PowerPoint 演示文稿中创建和操作表格。
- 在 PowerPoint PPT 中创建和操作表格的 Java API
- 在 Java 的 PowerPoint PPT 中创建表格
- 使用 Java 访问 PPTX 中的表
- 格式化 PowerPoint 表格中的文本
- 锁定 PPT 表格的纵横比
用于在 PowerPoint PPT 中创建和操作表格的 Java API
为了在 PowerPoint 演示文稿中创建和操作表格,我们将使用 Aspose.Slides for Java。该 API 旨在创建、操作和转换 PowerPoint 和 OpenOffice 演示文稿。您可以下载 API 的 JAR 或使用以下 Maven 配置安装它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.8</version>
<classifier>jdk16</classifier>
</dependency>
使用 Java 在 PowerPoint PPT 中创建表格
使用 Aspose.Slides for Java 创建表格非常简单。以下步骤演示了如何在 Java 中从头开始在 PowerPoint PPT 中创建表格。
- 首先,使用 Presentation 类创建一个新的演示文稿或加载现有的演示文稿。
- 然后,获取所需幻灯片的引用到 ISlide 对象中。
- 在 double[] 数组中分别定义列和行的宽度和高度。
- 使用 ISlide.getShapes().addTable(float, float, double[], double[]) 方法在演示文稿中插入一个新表格。
- 在 ITable 对象中获取新创建表的引用。
- 创建一个循环来遍历表的行。
- 创建一个嵌套循环以遍历表的单元格,并在每次迭代中执行以下操作。
- 使用 ITable.getRows().getItem(rowIndex).getItem(cellIndex).getTextFrame().setText(String) 方法设置单元格的文本。
- 将单元格格式引用到 ICellFormat 对象中。
- 如果需要,设置单元格的边框样式。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 Java 中的 PowerPoint PPT 中添加表格。
// 创建或加载演示文稿
Presentation pres = new Presentation();
try {
// 访问第一张幻灯片
ISlide sld = pres.getSlides().get_Item(0);
// 定义具有宽度的列和具有高度的行
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// 将表格形状添加到幻灯片
ITable tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// 为每个单元格设置文本和边框格式
for (int row = 0; row < tbl.getRows().size(); row++) {
for (int cell = 0; cell < tbl.getRows().get_Item(row).size(); cell++) {
// 设置文本
tbl.getRows().get_Item(row).get_Item(cell).getTextFrame().setText("Cell_" + cell);
// 设置边框
ICellFormat cellFormat = tbl.getRows().get_Item(row).get_Item(cell).getCellFormat();
cellFormat.getBorderTop().getFillFormat().setFillType(FillType.Solid);
cellFormat.getBorderTop().getFillFormat().getSolidFillColor().setColor(Color.RED);
cellFormat.getBorderTop().setWidth(5);
cellFormat.getBorderBottom().getFillFormat().setFillType(FillType.Solid);
cellFormat.getBorderBottom().getFillFormat().getSolidFillColor().setColor(Color.RED);
cellFormat.getBorderBottom().setWidth(5);
cellFormat.getBorderLeft().getFillFormat().setFillType(FillType.Solid);
cellFormat.getBorderLeft().getFillFormat().getSolidFillColor().setColor(Color.RED);
cellFormat.getBorderLeft().setWidth(5);
cellFormat.getBorderRight().getFillFormat().setFillType(FillType.Solid);
cellFormat.getBorderRight().getFillFormat().getSolidFillColor().setColor(Color.RED);
cellFormat.getBorderRight().setWidth(5);
}
}
// 将 PPTX 保存到磁盘
pres.save("table.pptx", SaveFormat.Pptx);
} finally {
if (pres != null)
pres.dispose();
}
以下屏幕截图显示了我们使用上述代码创建的表。
使用 Java 访问 PPT 中的表
您还可以访问现有 PowerPoint 演示文稿中的表格并根据需要对其进行操作。以下是访问演示文稿中表格的步骤。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 然后,将所需幻灯片的引用获取到 ISlide 对象中。
- 创建 ITable 的实例并将其初始化为 null。
- 遍历 ISlide.getShapes() 集合中的所有 IShape 对象。
- 过滤类型 ITable 的形状。
- 键入将形状转换为 ITable 并根据需要对其进行操作。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何使用 Java 访问 PowerPoint 演示文稿中的表格。
// 创建或加载演示文稿
Presentation pres = new Presentation("UpdateExistingTable.pptx");
try {
// 访问第一张幻灯片
ISlide sld = pres.getSlides().get_Item(0);
// 初始化 ITable
ITable tbl = null;
// 遍历形状并获取对找到的表的引用
for (IShape shp : sld.getShapes())
{
if (shp instanceof ITable)
{
tbl = (ITable) shp;
// 设置第二行第一列的文本
tbl.get_Item(0, 1).getTextFrame().setText("New");
}
}
// 将 PPTX 写入磁盘
pres.save("table1_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
使用 Java 格式化 PowerPoint 表格中的文本
Aspose.Slides for Java 还允许您非常轻松地设置表格的格式,如下面的步骤所示。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 然后,将所需幻灯片的引用获取到 ISlide 对象中。
- 从幻灯片中检索所需表的引用到 ITable 类的实例中。
- 使用 PortionFormat、ParagraphFormat 和 TextFrameFormat 类设置格式。
- 使用 ITable.setTextFormat() 方法为表格分配格式。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
下面的代码示例展示了如何使用 Java 在 PowerPoint 中设置表格的格式。
// 加载演示文稿
Presentation pres = new Presentation("simpletable.pptx");
try {
// 获取表的参考
ITable someTable = (ITable) pres.getSlides().get_Item(0).getShapes().get_Item(0);
// 设置表格单元格的字体高度
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.setTextFormat(portionFormat);
// 一次调用设置表格单元格的文本对齐方式和右边距
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.setTextFormat(paragraphFormat);
// 设置表格单元格的文本垂直类型
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
someTable.setTextFormat(textFrameFormat);
// 保存演示文稿
pres.save("result.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
使用Java在PPTX中锁定表格的纵横比
您还可以使用 Java 锁定 PowerPoint PPT 中表格的纵横比。以下是实现此目的的步骤。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 获取所需幻灯片的引用到 ISlide 对象中。
- 创建一个表或将现有表的引用检索到 ITable 对象中。
- 使用 ITable.getGraphicalObjectLock().setAspectRatioLocked(!ITable.getGraphicalObjectLock().getAspectRatioLocked()) 方法锁定纵横比。
- 最后,使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
以下 Java 代码示例显示了如何在 PowerPoint PPTX 中锁定表格的纵横比。
// 加载演示文稿
Presentation pres = new Presentation("pres.pptx");
try {
// 获取表的参考
ITable table = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
System.out.println("锁定纵横比 set: " + table.getGraphicalObjectLock().getAspectRatioLocked());
// 锁定纵横比
table.getGraphicalObjectLock().setAspectRatioLocked(!table.getGraphicalObjectLock().getAspectRatioLocked()); // invert
System.out.println("锁定纵横比 set: " + table.getGraphicalObjectLock().getAspectRatioLocked());
// 保存演示文稿
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
用于创建 PowerPoint 表格的 Java API - 获得免费许可证
您可以通过获得免费的 临时许可证 来使用 Aspose.Slides for Java,而不受评估限制。
结论
在本文中,您学习了如何使用 Java 在 PowerPoint PPT 中创建表格。此外,您还了解了如何访问表格并以编程方式设置其格式和纵横比。此外,您可以访问 文档 以探索更多关于 Aspose.Slides for Java 的信息。此外,您可以通过我们的 论坛 提问。