# Διαχείριση Πινάκων Παρουσίασης σε Java

> Δημιουργήστε & επεξεργαστείτε πίνακες σε διαφάνειες PowerPoint με Aspose.Slides για Java. Ανακαλύψτε απλές παραδείγματα κώδικα για να βελτιστοποιήσετε τις διαδικασίες σας με πίνακες.

Source: https://docs.aspose.com/slides/el/java/manage-table/
Updated: 2026-06-09

## **Εισαγωγή**

Ένας πίνακας στο PowerPoint είναι ένας αποδοτικός τρόπος εμφάνισης και απεικόνισης πληροφοριών. Οι πληροφορίες σε ένα πλέγμα κελιών (τοποθετημένα σε σειρές και στήλες) είναι απλές και εύκολα κατανοητές.

Το Aspose.Slides παρέχει την κλάση [Table](https://reference.aspose.com/slides/el/java/com.aspose.slides/Table), τη διεπαφή [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable), την κλάση [Cell](https://reference.aspose.com/slides/el/java/com.aspose.slides/cell/) , τη διεπαφή [ICell](https://reference.aspose.com/slides/el/java/com.aspose.slides/icell/) και άλλους τύπους ώστε να μπορείτε να δημιουργήσετε, ενημερώσετε και διαχειριστείτε πίνακες σε όλα τα είδη παρουσιάσεων. 

## **Δημιουργία Πίνακα από το Μηδέν**

1. Δημιουργήστε ένα στιγμιότυπο της κλάσης [Presentation](https://reference.aspose.com/slides/el/java/com.aspose.slides/Presentation).
2. Αποκτήστε την αναφορά μιας διαφάνειας μέσω του δείκτη της. 
3. Ορίστε έναν πίνακα `columnWidth`.
4. Ορίστε έναν πίνακα `rowHeight`.
5. Προσθέστε ένα αντικείμενο [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable) στη διαφάνεια μέσω της μεθόδου [addTable](https://reference.aspose.com/slides/el/java/com.aspose.slides/IShapeCollection#addTable-float-float-double:A-double:A-).
6. Διέλθετε από κάθε [ICell](https://reference.aspose.com/slides/el/java/com.aspose.slides/icell/) για να εφαρμόσετε μορφοποίηση στα άνω, κάτω, δεξιά και αριστερά σύνορα.
7. Συμμετοποίηση των δύο πρώτων κελιών της πρώτης σειράς του πίνακα. 
8. Προσπελάστε το [TextFrame](https://reference.aspose.com/slides/el/java/com.aspose.slides/textframe/) ενός [ICell](https://reference.aspose.com/slides/el/java/com.aspose.slides/icell/). 
9. Προσθέστε κείμενο στο [TextFrame](https://reference.aspose.com/slides/el/java/com.aspose.slides/textframe/).
10. Αποθηκεύστε την τροποποιημένη παρουσίαση.

```java
// Δημιουργεί μια κλάση Presentation που αντιπροσωπεύει ένα αρχείο PPTX
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);

    // Sets the border format for each cell
    for (int row = 0; row < tbl.getRows().size(); row++)
    {
        for (int cell = 0; cell < tbl.getRows().get_Item(row).size(); 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);
        }
    }
    // Συγχωνεύει τα κελιά 1 και 2 της σειράς 1
    tbl.mergeCells(tbl.getRows().get_Item(0).get_Item(0), tbl.getRows().get_Item(1).get_Item(1), false);

    // Προσθέτει κάποιο κείμενο στο συγχωνευμένο κελί
    tbl.getRows().get_Item(0).get_Item(0).getTextFrame().setText("Merged Cells");

    // Αποθηκεύει την παρουσίαση στο δίσκο
    pres.save("table.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **Αρίθμηση σε Κανονικό Πίνακα**

Σε έναν κανονικό πίνακα, η αρίθμηση των κελιών είναι απλή και ξεκινά από το μηδέν. Το πρώτο κελί σε έναν πίνακα έχει δείκτη 0,0 (στήλη 0, σειρά 0). 

Για παράδειγμα, τα κελιά σε έναν πίνακα με 4 στήλες και 4 σειρές αριθμούνται ως εξής:

| (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) |

```java
// Δημιουργεί ένα αντικείμενο κλάσης Presentation που αντιπροσωπεύει ένα αρχείο PPTX
Presentation pres = new Presentation();
try {
    // Πρόσβαση στην πρώτη διαφάνεια
    ISlide sld = pres.getSlides().get_Item(0);

    // Ορίζει στήλες με πλάτη και σειρές με ύψη
    double[] dblCols = { 70, 70, 70, 70 };
    double[] dblRows = { 70, 70, 70, 70 };

    // Προσθέτει ένα σχήμα πίνακα στη διαφάνεια
    ITable tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);

    // Ορίζει τη μορφοποίηση περιγράμματος για κάθε κελί
    for (IRow row : tbl.getRows())
    {
        for (ICell cell : row)
        {
            cell.getCellFormat().getBorderTop().getFillFormat().setFillType(FillType.Solid);
            cell.getCellFormat().getBorderTop().getFillFormat().getSolidFillColor().setColor(Color.RED);
            cell.getCellFormat().getBorderTop().setWidth(5);

            cell.getCellFormat().getBorderBottom().getFillFormat().setFillType(FillType.Solid);
            cell.getCellFormat().getBorderBottom().getFillFormat().getSolidFillColor().setColor(Color.RED);
            cell.getCellFormat().getBorderBottom().setWidth(5);

            cell.getCellFormat().getBorderLeft().getFillFormat().setFillType(FillType.Solid);
            cell.getCellFormat().getBorderLeft().getFillFormat().getSolidFillColor().setColor(Color.RED);
            cell.getCellFormat().getBorderLeft().setWidth(5);

            cell.getCellFormat().getBorderRight().getFillFormat().setFillType(FillType.Solid);
            cell.getCellFormat().getBorderRight().getFillFormat().getSolidFillColor().setColor(Color.RED);
            cell.getCellFormat().getBorderRight().setWidth(5);
        }
    }

    // Αποθηκεύει την παρουσίαση στο δίσκο
    pres.save("StandardTables_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **Πρόσβαση σε Υπάρχον Πίνακα**

1. Δημιουργήστε ένα στιγμιότυπο της κλάσης [Presentation](https://reference.aspose.com/slides/el/java/com.aspose.slides/Presentation).

2. Αποκτήστε μια αναφορά στη διαφάνεια που περιέχει τον πίνακα μέσω του δείκτη της. 

3. Δημιουργήστε ένα αντικείμενο [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable) και ορίστε το σε null.

4. Εξερευνήστε όλα τα αντικείμενα [IShape](https://reference.aspose.com/slides/el/java/com.aspose.slides/ishape/) μέχρι να βρεθεί ο πίνακας.

   Εάν υποπτεύεστε ότι η διαφάνεια που επεξεργάζεστε περιέχει έναν μόνο πίνακα, μπορείτε απλώς να ελέγξετε όλα τα σχήματα που περιέχει. Όταν ένα σχήμα ταυτοποιηθεί ως πίνακας, μπορείτε να το μετατρέψετε σε αντικείμενο [Table](https://reference.aspose.com/slides/el/java/com.aspose.slides/Table). Αλλά εάν η διαφάνεια περιέχει πολλούς πίνακες, τότε είναι πιο βολικό να αναζητήσετε τον απαιτούμενο πίνακα μέσω του [setAlternativeText(String value)](https://reference.aspose.com/slides/el/java/com.aspose.slides/ishape/#setAlternativeText-java.lang.String-).

5. Χρησιμοποιήστε το αντικείμενο [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable) για να εργαστείτε με τον πίνακα. Στο παρακάτω παράδειγμα, προσθέσαμε μια νέα σειρά στον πίνακα.

6. Αποθηκεύστε την τροποποιημένη παρουσίαση.

```java
// Δημιουργεί ένα αντικείμενο της κλάσης Presentation που αντιπροσωπεύει ένα αρχείο PPTX
Presentation pres = new Presentation("UpdateExistingTable.pptx");
try {

    // Πρόσβαση στην πρώτη διαφάνεια
    ISlide sld = pres.getSlides().get_Item(0);

    // Αρχικοποιεί το TableEx σε null
    ITable tbl = null;

    // Διέρχεται τα σχήματα και ορίζει μια αναφορά στον εντοπισμένο πίνακα
    for (IShape shp : sld.getShapes()) 
    {
        if (shp instanceof ITable) 
        {
            tbl = (ITable) shp;
            // Ορίζει το κείμενο για την πρώτη στήλη της δεύτερης σειράς
            tbl.get_Item(0, 1).getTextFrame().setText("New");
        }
    }
    
    // Αποθηκεύει την τροποποιημένη παρουσίαση στο δίσκο
    pres.save("table1_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **Στοίχιση Κειμένου σε Πίνακα**

1. Δημιουργήστε ένα στιγμιότυπο της κλάσης [Presentation](https://reference.aspose.com/slides/el/java/com.aspose.slides/Presentation).
2. Αποκτήστε την αναφορά μιας διαφάνειας μέσω του δείκτη της. 
3. Προσθέστε ένα αντικείμενο [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable) στη διαφάνεια. 
4. Προσπελάστε ένα αντικείμενο [ITextFrame](https://reference.aspose.com/slides/el/java/com.aspose.slides/itextframe/) από τον πίνακα. 
5. Προσπελάστε το [IParagraph](https://reference.aspose.com/slides/el/java/com.aspose.slides/iparagraph/) του [ITextFrame](https://reference.aspose.com/slides/el/java/com.aspose.slides/itextframe/).
6. Στοίχιση του κειμένου κατακόρυφα.
7. Αποθηκεύστε την τροποποιημένη παρουσίαση.

```java
// Δημιουργεί ένα αντικείμενο της κλάσης Presentation
Presentation pres = new Presentation();
try {
    // Παίρνει την πρώτη διαφάνεια
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Ορίζει στήλες με πλάτη και σειρές με ύψη
    double[] dblCols = { 120, 120, 120, 120 };
    double[] dblRows = { 100, 100, 100, 100 };
    
    // Προσθέτει το σχήμα πίνακα στη διαφάνεια
    ITable tbl = slide.getShapes().addTable(100, 50, dblCols, dblRows);
    tbl.get_Item(1, 0).getTextFrame().setText("10");
    tbl.get_Item(2, 0).getTextFrame().setText("20");
    tbl.get_Item(3, 0).getTextFrame().setText("30");
    
    // Πρόσβαση στο πλαίσιο κειμένου
    ITextFrame txtFrame = tbl.get_Item(0, 0).getTextFrame();
    
    // Δημιουργεί το αντικείμενο Paragraph για το πλαίσιο κειμένου
    IParagraph paragraph = txtFrame.getParagraphs().get_Item(0);
    
    // Δημιουργεί το αντικείμενο Portion για την παράγραφο
    IPortion portion = paragraph.getPortions().get_Item(0);
    portion.setText("Text here");
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
    
    // Στοίχει το κείμενο κατακόρυφα
    ICell cell = tbl.get_Item(0, 0);
    cell.setTextAnchorType(TextAnchorType.Center);
    cell.setTextVerticalType(TextVerticalType.Vertical270);
    
    // Αποθηκεύει την παρουσίαση στο δίσκο
    pres.save("Vertical_Align_Text_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **Ορισμός Μορφοποίησης Κειμένου σε Επίπεδο Πίνακα**

1. Δημιουργήστε ένα στιγμιότυπο της κλάσης [Presentation](https://reference.aspose.com/slides/el/java/com.aspose.slides/Presentation).
2. Αποκτήστε την αναφορά μιας διαφάνειας μέσω του δείκτη της. 
3. Προσπελάστε ένα αντικείμενο [ITable](https://reference.aspose.com/slides/el/java/com.aspose.slides/ITable) από τη διαφάνεια.
4. Ορίστε το [setFontHeight(float value)](https://reference.aspose.com/slides/el/java/com.aspose.slides/baseportionformat/#setFontHeight-float-) για το κείμενο. 
5. Ορίστε το [setAlignment(int value)](https://reference.aspose.com/slides/el/java/com.aspose.slides/iparagraphformat/#setAlignment-int-) και το [setMarginRight(float value)](https://reference.aspose.com/slides/el/java/com.aspose.slides/iparagraphformat/#setMarginRight-float-). 
6. Ορίστε το [setTextVerticalType(byte value)](https://reference.aspose.com/slides/el/java/com.aspose.slides/textframeformat/#setTextVerticalType-byte-).
7. Αποθηκεύστε την τροποποιημένη παρουσίαση. 

```java
// Δημιουργεί ένα αντικείμενο της κλάσης Presentation
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();
}
```

## **Λήψη Ιδιοτήτων Στυλ Πίνακα**

Το Aspose.Slides σάς επιτρέπει να ανακτήσετε τις ιδιότητες στυλ για έναν πίνακα ώστε να τις χρησιμοποιήσετε σε άλλον πίνακα ή οπουδήποτε αλλού. Αυτός ο κώδικας Java δείχνει πώς να λάβετε τις ιδιότητες στυλ από ένα προεπιλεγμένο στυλ πίνακα:

```java
Presentation pres = new Presentation();
try {
    ITable table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
    table.setStylePreset(TableStylePreset.DarkStyle1); // αλλάζει το προεπιλεγμένο στυλ προεπιλογής
    pres.save("table.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **Κλείδωμα Αναλογίας Διαστάσεων Πίνακα**

Η αναλογία διαστάσεων ενός γεωμετρικού σχήματος είναι ο λόγος των μεγεθών του σε διαφορετικές διαστάσεις. Το Aspose.Slides παρείχε την ιδιότητα [**setAspectRatioLocked**](https://reference.aspose.com/slides/el/java/com.aspose.slides/GraphicalObjectLock#setAspectRatioLocked-boolean-) για να μπορείτε να κλειδώσετε τη ρύθμιση της αναλογίας διαστάσεων για πίνακες και άλλα σχήματα. 

```java
Presentation pres = new Presentation("pres.pptx");
try {
    ITable table = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    System.out.println("Lock aspect ratio set: " + table.getGraphicalObjectLock().getAspectRatioLocked());

    table.getGraphicalObjectLock().setAspectRatioLocked(!table.getGraphicalObjectLock().getAspectRatioLocked()); // αντιστροφή

    System.out.println("Lock aspect ratio set: " + table.getGraphicalObjectLock().getAspectRatioLocked());

    pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
```

## **FAQ**

**Μπορώ να ενεργοποιήσω την ανάγνωση από δεξιά προς αριστερά (RTL) για ολόκληρο τον πίνακα και το κείμενο στα κελιά του;**

Ναι. Ο πίνακας προσφέρει τη μέθοδο [setRightToLeft](https://reference.aspose.com/slides/el/java/com.aspose.slides/table/#setRightToLeft-boolean-) και οι παράγραφοι διαθέτουν το [ParagraphFormat.setRightToLeft](https://reference.aspose.com/slides/el/java/com.aspose.slides/paragraphformat/#setRightToLeft-byte-). Η χρήση και των δύο διασφαλίζει τη σωστή σειρά RTL και την απόδοση μέσα στα κελιά.

**Πώς μπορώ να αποτρέψω τους χρήστες από τη μετακίνηση ή την αλλαγή μεγέθους ενός πίνακα στο τελικό αρχείο;**

Χρησιμοποιήστε [shape locks](/slides/el/java/applying-protection-to-presentation/) για να απενεργοποιήσετε τη μετακίνηση, την αλλαγή μεγέθους, την επιλογή κ.λπ. Αυτά τα κλειδώματα ισχύουν και για πίνακες.

**Υποστηρίζεται η εισαγωγή μιας εικόνας μέσα σε κελί ως φόντο;**

Ναι. Μπορείτε να ορίσετε μια [picture fill](https://reference.aspose.com/slides/el/java/com.aspose.slides/picturefillformat/) για ένα κελί· η εικόνα θα καλύψει την περιοχή του κελιού ανάλογα με την επιλεγμένη λειτουργία (τεντό ή επικάλυψη).
