Zeilen und Spalten verwalten
Um Ihnen die Verwaltung der Zeilen und Spalten einer Tabelle in einer PowerPoint-Präsentation zu ermöglichen, bietet Aspose.Slides die Table Klasse, das ITable Interface und viele andere Typen.
Erste Zeile als Kopfzeile festlegen
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation.
- Holen Sie sich einen Referenz auf die Folie über ihren Index.
- Erstellen Sie ein ITable Objekt und setzen Sie es auf null.
- Durchlaufen Sie alle IShape Objekte, um die relevante Tabelle zu finden.
- Setzen Sie die erste Zeile der Tabelle als Kopfzeile.
Dieser C++-Code zeigt Ihnen, wie Sie die erste Zeile einer Tabelle als Kopfzeile festlegen:
// Instanziiert die Presentation-Klasse
auto pres = System::MakeObject<Presentation>(u"table.pptx");
// Greift auf die erste Folie zu
auto sld = pres->get_Slides()->idx_get(0);
// Initialisiert die null TableEx
SharedPtr<ITable> tbl;
// Durchläuft die Formen und setzt eine Referenz auf die Tabelle
for (const auto& shp : sld->get_Shapes())
{
if (ObjectExt::Is<ITable>(shp))
{
tbl = System::ExplicitCast<ITable>(shp);
}
}
// Setzt die erste Zeile einer Tabelle als Kopfzeile
tbl->set_FirstRow(true);
Zeile oder Spalte der Tabelle klonen
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation,
- Holen Sie sich einen Referenz auf die Folie über ihren Index.
- Definieren Sie ein Array von
columnWidth
. - Definieren Sie ein Array von
rowHeight
. - Fügen Sie ein ITable Objekt zur Folie über die AddTable() Methode hinzu.
- Klonen Sie die Tabellenzeile.
- Klonen Sie die Tabellenspalte.
- Speichern Sie die modifizierte Präsentation.
Dieser C++-Code zeigt Ihnen, wie Sie eine Zeile oder Spalte einer PowerPoint-Tabelle klonen:
// Der Pfad zum Dokumentenverzeichnis.
const String outPath = u"../out/CloningInTable_out.pptx";
// Instanziiert die Presentation-Klasse
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Greift auf die erste Folie zu
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// Fügt der Folie eine Tabellenform hinzu
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
// Setzt das Format für die Ränder jeder Zelle
for (int x = 0; x < table->get_Rows()->get_Count(); x++)
{
SharedPtr<IRow> row = table->get_Rows()->idx_get(x);
for (int y = 0; y < row->get_Count(); y++)
{
SharedPtr<ICell> cell = row->idx_get(y);
cell->get_BorderTop()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderTop()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderTop()->set_Width(5);
cell->get_BorderBottom()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderBottom()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderBottom()->set_Width(5);
cell->get_BorderLeft()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderLeft()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderLeft()->set_Width(5);
cell->get_BorderRight()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderRight()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderRight()->set_Width(5);
}
}
table->idx_get(0, 0)->get_TextFrame()->set_Text(u"00");
table->idx_get(0, 1)->get_TextFrame()->set_Text(u"01");
table->idx_get(0, 2)->get_TextFrame()->set_Text(u"02");
table->idx_get(0, 3)->get_TextFrame()->set_Text(u"03");
table->idx_get(1, 0)->get_TextFrame()->set_Text(u"10");
table->idx_get(2, 0)->get_TextFrame()->set_Text(u"20");
table->idx_get(1, 1)->get_TextFrame()->set_Text(u"11");
table->idx_get(2, 1)->get_TextFrame()->set_Text(u"21");
//AddClone fügt eine Zeile am Ende der Tabelle hinzu
table->get_Rows()->AddClone(table->get_Rows()->idx_get(0), false);
//InsertClone fügt eine Zeile an einer bestimmten Position in einer Tabelle hinzu
table->get_Rows()->InsertClone(2, table->get_Rows()->idx_get(0), false);
//AddClone fügt eine Spalte am Ende der Tabelle hinzu
table->get_Columns()->AddClone(table->get_Columns()->idx_get(0), false);
//InsertClone fügt eine Spalte an einer bestimmten Position in einer Tabelle hinzu
table->get_Columns()->InsertClone(2, table->get_Columns()->idx_get(0), false);
// Speichert die Präsentation auf der Festplatte
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Zeile oder Spalte aus der Tabelle entfernen
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation,
- Holen Sie sich einen Referenz auf die Folie über ihren Index.
- Definieren Sie ein Array von
columnWidth
. - Definieren Sie ein Array von
rowHeight
. - Fügen Sie ein ITable Objekt zur Folie über die AddTable() Methode hinzu.
- Entfernen Sie die Tabellenzeile.
- Entfernen Sie die Tabellenspalte.
- Speichern Sie die modifizierte Präsentation.
Dieser C++-Code zeigt Ihnen, wie Sie eine Zeile oder Spalte aus einer Tabelle entfernen:
// Der Pfad zum Dokumentenverzeichnis.
const String outPath = u"../out/RemovingRowColumn_out.pptx";
// Instanziiert die Presentation-Klasse
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Greift auf die erste Folie zu
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// Definiert die Spalten mit Breiten und Zeilen mit Höhen
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// Fügt der Folie eine Tabellenform hinzu
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
table->get_Rows()->RemoveAt(1, false);
table->get_Columns()->RemoveAt(1, false);
// Zusammenführen von Zellen (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// Zusammenführen von Zellen (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// Speichert die Präsentation auf der Festplatte
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Textformatierung auf Zeilenebene der Tabelle festlegen
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation,
- Holen Sie sich einen Referenz auf die Folie über ihren Index.
- Greifen Sie auf das relevante ITable Objekt von der Folie zu.
- Setzen Sie die Schriftgröße der ersten Zeilenfelder mit set_FontHeight().
- Setzen Sie die Textausrichtung und den rechten Rand der ersten Zeilenfelder mit set_Alignment() und set_MarginRight().
- Setzen Sie den vertikalen Texttyp der zweiten Zeilenfelder mit set_TextVerticalType().
- Speichern Sie die modifizierte Präsentation.
Dieser C++-Code demonstriert die Operation.
// Erstellt eine Instanz der Presentation-Klasse
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slides()->idx_get(0);
auto someTable = System::AsCast<ITable>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
// Angenommen, die erste Form auf der ersten Folie ist eine Tabelle
// Setzt die Schriftgröße der Zellen in der ersten Zeile
auto portionFormat = System::MakeObject<PortionFormat>();
portionFormat->set_FontHeight(25.0f);
someTable->get_Rows()->idx_get(0)->SetTextFormat(portionFormat);
// Setzt die Textausrichtung und den rechten Rand der Zellen in der ersten Zeile
auto paragraphFormat = System::MakeObject<ParagraphFormat>();
paragraphFormat->set_Alignment(TextAlignment::Right);
paragraphFormat->set_MarginRight(20.0f);
someTable->get_Rows()->idx_get(0)->SetTextFormat(paragraphFormat);
// Setzt den vertikalen Texttyp der Zellen in der zweiten Zeile
auto textFrameFormat = System::MakeObject<TextFrameFormat>();
textFrameFormat->set_TextVerticalType(TextVerticalType::Vertical);
someTable->get_Rows()->idx_get(1)->SetTextFormat(textFrameFormat);
// Speichert die Präsentation auf der Festplatte
presentation->Save(u"result.pptx", SaveFormat::Pptx);
Textformatierung auf Spaltenebene der Tabelle festlegen
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation,
- Holen Sie sich einen Referenz auf die Folie über ihren Index.
- Greifen Sie auf das relevante ITable Objekt von der Folie zu.
- Setzen Sie die Schriftgröße der ersten Spaltenfelder mit set_FontHeight().
- Setzen Sie die Textausrichtung und den rechten Rand der ersten Spaltenfelder mit set_Alignment() und set_MarginRight().
- Setzen Sie den vertikalen Texttyp der zweiten Spaltenfelder mit set_TextVerticalType().
- Speichern Sie die modifizierte Präsentation.
Dieser C++-Code demonstriert die Operation:
// Erstellt eine Instanz der Presentation-Klasse
auto pres = System::MakeObject<Presentation>();
auto slide = pres->get_Slides()->idx_get(0);
auto someTable = System::AsCast<ITable>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
// Angenommen, die erste Form auf der ersten Folie ist eine Tabelle
// Setzt die Schriftgröße der Zellen in der ersten Spalte
auto portionFormat = System::MakeObject<PortionFormat>();
portionFormat->set_FontHeight(25.0f);
someTable->get_Columns()->idx_get(0)->SetTextFormat(portionFormat);
// Setzt die Textausrichtung und den rechten Rand der Zellen in der ersten Spalte in einem Aufruf
auto paragraphFormat = System::MakeObject<ParagraphFormat>();
paragraphFormat->set_Alignment(TextAlignment::Right);
paragraphFormat->set_MarginRight(20.0f);
someTable->get_Columns()->idx_get(0)->SetTextFormat(paragraphFormat);
// Setzt den vertikalen Texttyp der Zellen in der zweiten Spalte
auto textFrameFormat = System::MakeObject<TextFrameFormat>();
textFrameFormat->set_TextVerticalType(TextVerticalType::Vertical);
someTable->get_Columns()->idx_get(1)->SetTextFormat(textFrameFormat);
pres->Save(u"result.pptx", SaveFormat::Pptx);
Tabellenstil-Eigenschaften abrufen
Aspose.Slides ermöglicht Ihnen, die Stileigenschaften einer Tabelle abzurufen, damit Sie diese Details für eine andere Tabelle oder anderswo verwenden können. Dieser C++-Code zeigt Ihnen, wie Sie die Stileigenschaften aus einem vordefinierten Tabellenstil abrufen:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slide(0)->get_Shapes();
auto table = System::ExplicitCast<ITable>(shapes->AddTable(10, 10, System::MakeArray<double>({100, 150}), System::MakeArray<double>({5, 5, 5})));
table->set_StylePreset(TableStylePreset::DarkStyle1);
pres->Save(u"table.pptx", SaveFormat::Pptx);