Создание таблиц и управление ими в PowerPoint C#

Таблицы используются для организации данных в виде строк и столбцов. Более того, они организуют и обобщают данные, чтобы их можно было легко просматривать и анализировать. MS PowerPoint также позволяет вставлять таблицы в презентации. Соответственно, в этой статье рассказывается, как создавать таблицы в презентациях PowerPoint и управлять ими с помощью C#.

C# API для создания и управления таблицами в PowerPoint

Для создания таблиц и управления ими в презентациях PowerPoint мы будем использовать Aspose.Slides for .NET. API позволяет создавать, обрабатывать и преобразовывать документы PowerPoint и OpenOffice. Вы можете скачать библиотеку DLL API и добавить ссылку на нее в свой проект. Кроме того, вы можете установить его с помощью NuGet.

PM> Install-Package Aspose.Slides.NET

Создание таблицы в презентациях PowerPoint с помощью C#

Создать таблицу с помощью Aspose.Slides для .NET несложно. Следующие шаги показывают, как создать таблицу в презентации PowerPoint с помощью C#.

  • Сначала создайте новую презентацию или загрузите существующую с помощью класса 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);

На следующем снимке экрана показана таблица, которую мы создали с помощью приведенного выше кода.

Создать таблицу в PowerPoint С#

Доступ к таблице в презентации с помощью C#

Вы также можете получить доступ к таблицам в существующих презентациях PowerPoint и управлять ими по мере необходимости. Ниже приведены шаги для доступа к таблицам в презентации.

  • Сначала загрузите существующую презентацию, используя класс Presentation.
  • Затем получите ссылку на нужный слайд в объект ISlide.
  • Создайте экземпляр ITable и инициализируйте его нулевым значением.
  • Перебрать все объекты IShape в коллекции ISlide.Shapes.
  • Отфильтруйте фигуры типа ITable.
  • Введите форму в ITable и манипулируйте ею по мере необходимости.
  • Наконец, сохраните презентацию с помощью метода Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как получить доступ к таблицам в презентации PowerPoint с помощью C#.

// Загрузить презентацию
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
    // Доступ к первому слайду
    ISlide sld = pres.Slides[0];

    // Инициализировать нулевой TableEx
    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);
}

Форматирование текста в таблицах PowerPoint с помощью C#

Aspose.Slides для .NET также позволяет довольно легко задавать форматирование таблиц, как показано в шагах ниже.

  • Сначала загрузите существующую презентацию, используя класс Presentation.
  • Затем получите ссылку на нужный слайд в объект ISlide.
  • Получить ссылку на нужную таблицу со слайда в объект ITable.
  • Установите форматирование с помощью классов PortionFormat, ParagraphFormat и TextFrameFormat.
  • Назначьте форматирование таблице с помощью методов ITable.setTextFormat().
  • Наконец, сохраните презентацию, используя метод Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как задать форматирование таблицы в PowerPoint с помощью C#.

// Создать или загрузить презентацию
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);

Блокировка соотношения сторон таблиц в PowerPoint с помощью C#

Вы также можете заблокировать соотношение сторон таблиц в презентациях PowerPoint с помощью C#. Ниже приведены шаги для достижения этого.

  • Сначала загрузите существующую презентацию, используя класс 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 для .NET без ограничений по ознакомительной версии, получив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как создавать таблицы в презентациях PowerPoint с помощью C#. Кроме того, вы увидели, как программно получать доступ к существующим таблицам в презентациях PowerPoint и управлять ими. Кроме того, вы можете посетить документацию, чтобы узнать больше об Aspose.Slides для .NET. Также вы можете задать свои вопросы на нашем форуме.

Смотрите также