PowerPoint táblázatok kezelése .NET-ben
Bevezetés
A PowerPoint táblázat hatékony módja az információ megjelenítésének és ábrázolásának. A cellák rácsában (sorokba és oszlopokba rendezve) lévő információ egyértelmű és könnyen érthető.
Aspose.Slides biztosítja a Table osztályt, a ITable interfészt, a Cell osztályt, a ICell interfészt, és más típusokat, amelyek lehetővé teszik táblázatok létrehozását, frissítését és kezelését mindenféle bemutatóban.
Táblázat létrehozása alapból
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be a dia hivatkozását az indexe alapján.
- Határozzon meg egy
columnWidthtömböt. - Határozzon meg egy
rowHeighttömböt. - Adjon hozzá egy ITable objektumot a diára a AddTable metódussal.
- Iteráljon minden ICell elemen, hogy formázást alkalmazzon a felső, alsó, jobb és bal szegélyekre.
- Egyesítse a táblázat első sorának első két celláját.
- Érje el egy ICell’s TextFrame.
- Adjon hozzá szöveget a TextFrame-hez.
- Mentse a módosított bemutatót.
Ez a C# kód bemutatja, hogyan hozhat létre táblázatot egy bemutatóban:
// Létrehozza a PPTX fájlt képviselő Presentation osztály példányát
Presentation pres = new Presentation();
// Accesses the first slide
ISlide sld = pres.Slides[0];
// Defines columns with widths and rows with heights
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// Adds a table shape to the slide
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// Sets the border format for each cell
for (int row = 0; row < tbl.Rows.Count; row++)
{
for (int cell = 0; cell < tbl.Rows[row].Count; 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;
}
}
// Összevonja az 1. sor 1. és 2. celláit
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);
// Szöveget ad a összevont cellához
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";
// Elmenti a prezentációt a lemezre
pres.Save("table.pptx", SaveFormat.Pptx);
Számozás egy szabványos táblázatban
Egy szabványos táblázatban a cellák számozása egyszerű és nullától indul. Az első cella indexe 0,0 (oszlop 0, sor 0).
Például egy 4 oszlopos és 4 soros táblázat cellái így vannak számozva:
| (0, 0) | (1, 0) | (2, 0) | (3, 0) |
|---|---|---|---|
| (0, 1) | (1, 1) | (2, 1) | (3, 1) |
| (0, 2) | (1, 2) | (2, 2) | (3, 2) |
| (0, 3) | (1, 3) | (2, 3) | (3, 3) |
Ez a C# kód megmutatja, hogyan adható meg a cellák számozása egy táblázatban:
// Létrehozza a PPTX fájlt képviselő Presentation osztályt
using (Presentation pres = new Presentation())
{
// Eléri az első diát
ISlide sld = pres.Slides[0];
// Meghatározza az oszlopok szélességét és a sorok magasságát
double[] dblCols = { 70, 70, 70, 70 };
double[] dblRows = { 70, 70, 70, 70 };
// Táblázat alakzatot ad a diához
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// Beállítja a szegély formátumát minden cellához
foreach (IRow row in tbl.Rows)
{
foreach (ICell cell in row)
{
cell.CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
cell.CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
cell.CellFormat.BorderTop.Width = 5;
cell.CellFormat.BorderBottom.FillFormat.FillType = FillType.Solid;
cell.CellFormat.BorderBottom.FillFormat.SolidFillColor.Color = Color.Red;
cell.CellFormat.BorderBottom.Width = 5;
cell.CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
cell.CellFormat.BorderLeft.FillFormat.SolidFillColor.Color = Color.Red;
cell.CellFormat.BorderLeft.Width = 5;
cell.CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
cell.CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
cell.CellFormat.BorderRight.Width = 5;
}
}
// A prezentáció mentése a lemezre
pres.Save("StandardTables_out.pptx", SaveFormat.Pptx);
}
Létező táblázat elérése
-
Hozzon létre egy példányt a Presentation osztályból.
-
Szerezze meg a táblázatot tartalmazó dia hivatkozását az indexe alapján.
-
Hozzon létre egy ITable objektumot, és állítsa null-ra.
-
Iteráljon minden IShape objektumon, amíg a táblázat megtalálható.
Ha úgy véli, hogy a diához csak egy táblázat tartozik, egyszerűen ellenőrizheti az összes benne lévő alakzatot. Amikor egy alakzatot táblázatként azonosítanak, típuskonverzióval Table objektummá alakítható. Ha azonban a diához több táblázat is tartozik, akkor célszerűbb az AlternativeText segítségével megtalálni a kívánt táblázatot.
-
Használja a ITable objektumot a táblázattal való munkához. Az alábbi példában egy új sort adtunk a táblázathoz.
-
Mentse a módosított bemutatót.
Ez a C# kód megmutatja, hogyan érheti el és dolgozhat egy létező táblázattal:
// Létrehozza a PPTX fájlt képviselő Presentation osztályt
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
// Eléri az első diát
ISlide sld = pres.Slides[0];
// Null TableEx-et inicializál
ITable tbl = null;
// Végigiterál a formákon és beállítja a megtalált táblázatra mutató hivatkozást
foreach (IShape shp in sld.Shapes)
if (shp is ITable)
tbl = (ITable)shp;
// Beállítja a szöveget a második sor első oszlopához
tbl[0, 1].TextFrame.Text = "New";
// Elmenti a módosított prezentációt a lemezre
pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
Szöveg igazítása egy táblázatban
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be a dia hivatkozását az indexe alapján.
- Adjon hozzá egy ITable objektumot a diára.
- Érje el a táblázatból egy ITextFrame objektumot.
- Érje el a ITextFrame IParagraph elemet.
- Igazítsa függőlegesen a szöveget.
- Mentse a módosított bemutatót.
Ez a C# kód megmutatja, hogyan igazítható a szöveg egy táblázatban:
// Creates an instance of the Presentation class
Presentation presentation = new Presentation();
// Gets the first slide
ISlide slide = presentation.Slides[0];
// Defines columns with widths and rows with heights
double[] dblCols = { 120, 120, 120, 120 };
double[] dblRows = { 100, 100, 100, 100 };
// Adds the table shape to the slide
ITable tbl = slide.Shapes.AddTable(100, 50, dblCols, dblRows);
tbl[1, 0].TextFrame.Text = "10";
tbl[2, 0].TextFrame.Text = "20";
tbl[3, 0].TextFrame.Text = "30";
// Accesses the text frame
ITextFrame txtFrame = tbl[0, 0].TextFrame;
// Creates the Paragraph object for the text frame
IParagraph paragraph = txtFrame.Paragraphs[0];
// Creates the Portion object for paragraph
IPortion portion = paragraph.Portions[0];
portion.Text = "Text here";
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
// Aligns the text vertically
ICell cell = tbl[0, 0];
cell.TextAnchorType = TextAnchorType.Center;
cell.TextVerticalType = TextVerticalType.Vertical270;
// Saves the presentation to disk
presentation.Save("Vertical_Align_Text_out.pptx", SaveFormat.Pptx);
Szövegformázás beállítása táblaszinten
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be a dia hivatkozását az indexe alapján.
- Érje el a ITable objektumot a diámból.
- FontHeight beállítása a szöveghez.
- Alignment és MarginRight beállítása.
- TextVerticalType beállítása.
- Mentse a módosított bemutatót.
Ez a C# kód megmutatja, hogyan alkalmazhatja a kívánt formázási beállításokat a táblázat szövegére:
// Létrehozza a Presentation osztály egy példányát
Presentation presentation = new Presentation();
ISlide slide = presentation.Slides[0];
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // Tegyük fel, hogy az első dia első alakzata egy táblázat
// Sets the table cells' font height
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);
// Sets the table cells' text alignment and right margin in one call
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);
// Sets the table cells' text vertical type
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);
presentation.Save("result.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Táblázat stílustulajdonságainak lekérése
Az Aspose.Slides lehetővé teszi a táblázat stílustulajdonságainak lekérését, hogy ezeket a részleteket egy másik táblázathoz vagy más helyen felhasználhassa. Ez a C# kód megmutatja, hogyan kaphatók meg a stílustulajdonságok egy táblázat előre beállított stílusából:
using (Presentation pres = new Presentation())
{
ITable table = pres.Slides[0].Shapes.AddTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
table.StylePreset = TableStylePreset.DarkStyle1; // módosítja az alapértelmezett stílus előre beállított témát
pres.Save("table.pptx", SaveFormat.Pptx);
}
Táblázat méretarányának zárolása
A geometriai alakzat méretaránya a különböző dimenziók méretének aránya. Az Aspose.Slides a AspectRatioLocked tulajdonságot biztosítja, amely lehetővé teszi a táblázatok és egyéb alakzatok méretarány-beállításának zárolását.
Ez a C# kód bemutatja, hogyan zárolható a méretarány egy táblázat esetén:
using (Presentation pres = new Presentation("pres.pptx"))
{
ITable table = (ITable)pres.Slides[0].Shapes[0];
Console.WriteLine($"Lock aspect ratio set: {table.ShapeLock.AspectRatioLocked}");
table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // megfordítja
Console.WriteLine($"Lock aspect ratio set: {table.ShapeLock.AspectRatioLocked}");
pres.Save("pres-out.pptx", SaveFormat.Pptx);
}
GYIK
Engedélyezhetem a jobbról balra (RTL) olvasási irányt egy teljes táblázat és annak celláinak szövege számára?
Igen. A táblázat rendelkezik egy RightToLeft tulajdonsággal, a bekezdések pedig ParagraphFormat.RightToLeft tulajdonsággal. Mindkettő használata biztosítja a helyes RTL sorrendet és megjelenítést a cellákban.
Hogyan akadályozhatom meg, hogy a felhasználók a végleges fájlban áthelyezzék vagy átméretezzék a táblázatot?
Használja a shape locks lehetőséget a mozgatás, átméretezés, kijelölés stb. letiltásához. Ezek a zárolások a táblázatokra is érvényesek.
Támogatott-e egy kép cellába háttérként való beszúrása?
Igen. Beállíthat egy picture fill kitöltést egy cellához; a kép a kiválasztott mód (nyújtás vagy csempe) szerint lefedi a cella területét.