表格用于以行和列的形式排列数据。此外,他们组织和汇总数据,以便轻松查看和分析。 MS PowerPoint 还允许您在演示文稿中插入表格。因此,本文介绍了如何使用 C# 在 PowerPoint 演示文稿中创建和操作表格。
在 PowerPoint 中创建和操作表格的 C# API
要在 PowerPoint 演示文稿中创建和操作表格,我们将使用 Aspose.Slides for .NET。该 API 允许您创建、操作和转换 PowerPoint 和 OpenOffice 文档。您可以下载 API 的 DLL 并在您的项目中添加对它的引用。此外,您可以使用 NuGet 安装它。
PM> Install-Package Aspose.Slides.NET
使用 C# 在 PowerPoint 演示文稿中创建表格
使用 Aspose.Slides for .NET 创建表格是小菜一碟。以下步骤展示了如何使用 C# 在 PowerPoint 演示文稿中创建表格。
- 首先,使用 Presentation 类创建一个新的演示文稿或加载一个现有的演示文稿。
- 然后,将所需幻灯片的引用获取到 ISlide 对象中。
- 在 double[] 数组中分别定义列和行的宽度和高度。
- 使用 ISlide.Shapes.AddTable() 方法在演示文稿中插入一个新表格。
- 在 ITable 对象中获取新创建表的引用。
- 创建一个循环来遍历表的行。
- 创建一个嵌套循环以遍历表的单元格,并在每次迭代中执行以下操作。
- 使用 ITable.Rows[rowIndex][cellIndex].TextFrame.Text 属性设置单元格的文本。
- 如果需要,将单元格格式引用到 ICellFormat 对象并设置单元格的边框样式。
- 最后,使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何在 PowerPoint 演示文稿中创建表格。
// 创建或加载演示文稿
Presentation pres = new Presentation();
// 访问第一张幻灯片
ISlide sld = pres.Slides[0];
// 定义具有宽度的列和具有高度的行
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// 将表格形状添加到幻灯片
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// 为每个单元格设置边框格式和文本
for (int row = 0; row < tbl.Rows.Count; row++)
{
for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
{
// 将文本添加到单元格
tbl.Rows[row][cell].TextFrame.Text = "Cells_" + cell;
tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;
tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;
tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;
tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
}
}
// 将 PPTX 保存到磁盘
pres.Save("table.pptx", SaveFormat.Pptx);
以下屏幕截图显示了我们使用上述代码创建的表。
使用 C# 访问演示文稿中的表
您还可以访问现有 PowerPoint 演示文稿中的表格并根据需要对其进行操作。以下是访问演示文稿中表格的步骤。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 然后,获取所需幻灯片的引用到 ISlide 对象中。
- 创建一个 ITable 的实例并将其初始化为 null。
- 遍历 ISlide.Shapes 集合中的所有 IShape 对象。
- 过滤类型 ITable 的形状。
- 键入将形状转换为 ITable 并根据需要对其进行操作。
- 最后,使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何使用 C# 访问 PowerPoint 演示文稿中的表格。
// 加载演示文稿
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
// 访问第一张幻灯片
ISlide sld = pres.Slides[0];
// 初始化空表Ex
ITable tbl = null;
// 遍历形状并设置对找到的表的引用
foreach (IShape shp in sld.Shapes)
if (shp is ITable)
tbl = (ITable)shp;
// 设置第二行第一列的文本
tbl[0, 1].TextFrame.Text = "New";
//将 PPTX 写入磁盘
pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
使用 C# 格式化 PowerPoint 表格中的文本
Aspose.Slides for .NET 还允许您非常轻松地设置表格的格式,如下面的步骤所示。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 然后,获取所需幻灯片的引用到 ISlide 对象中。
- 从幻灯片中检索所需表格的引用到 ITable 对象中。
- 使用 PortionFormat、ParagraphFormat 和 TextFrameFormat 类设置格式。
- 使用 ITable.setTextFormat() 方法为表格分配格式。
- 最后,使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何使用 C# 在 PowerPoint 中设置表格的格式。
// 创建或加载演示文稿
Presentation presentation = new Presentation();
// 获取幻灯片的参考
ISlide slide = presentation.Slides[0];
// 获取表的参考
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table
// 设置表格单元格的字体高度
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);
// 一次调用设置表格单元格的文本对齐方式和右边距
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);
// 设置表格单元格的文本垂直类型
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);
// 保存演示文稿
presentation.Save("result.pptx", SaveFormat.Pptx);
使用 C# 在 PowerPoint 中锁定表格的纵横比
您还可以使用 C# 锁定 PowerPoint 演示文稿中表格的纵横比。以下是实现此目的的步骤。
- 首先,使用 Presentation 类加载现有的演示文稿。
- 然后,获取所需幻灯片的引用到 ISlide 对象中。
- 创建表或将现有表的引用检索到 ITable 对象中。
- 将 ITable.ShapeLock.AspectRatioLocked 属性设置为 !ITable.ShapeLock.AspectRatioLocked 以锁定纵横比。
- 最后,使用 Presentation.Save(String, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何在 PowerPoint 演示文稿中锁定表格的纵横比。
// 加载演示文稿
using (Presentation pres = new Presentation("presentation.pptx"))
{
// 获取表的参考
ITable table = (ITable)pres.Slides[0].Shapes[0];
Console.WriteLine($"锁定纵横比 set: {table.ShapeLock.AspectRatioLocked}");
// 锁定纵横比
table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
Console.WriteLine($"锁定纵横比 set: {table.ShapeLock.AspectRatioLocked}");
// 保存演示文稿
pres.Save("pres-out.pptx", SaveFormat.Pptx);
}
获取免费 API 许可证
您可以通过获得免费的 临时许可证 来使用 Aspose.Slides for .NET,而不受评估限制。
结论
在本文中,您学习了如何使用 C# 在 PowerPoint 演示文稿中创建表格。此外,您还了解了如何以编程方式访问和操作 PowerPoint 演示文稿中的现有表格。此外,您可以访问 文档 以探索更多关于 Aspose.Slides for .NET 的信息。此外,您可以通过我们的 论坛 提问。