Java में तालिकाओं के साथ कैसे काम करें

Java में तालिकाओं के साथ कैसे काम करें

Aspose.Slides FOSS for Java supports creating tables on slides with configurable column widths and row heights. This guide shows how to add a table, populate it with data, and apply basic text formatting to cells.

स्टेप बाय स्टेप गाइड

चरण 1: Maven निर्भरता जोड़ें

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

चरण 2: प्रस्तुति बनाएं या खोलें

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ICell;
import org.aspose.slides.foss.IParagraphCollection;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);
    // ... add table ...
    prs.save("table.pptx", SaveFormat.PPTX);
}

चरण 3: कॉलम चौड़ाई और पंक्ति ऊँचाई निर्धारित करें

तालिकाओं को पॉइंट्स में स्पष्ट कॉलम चौड़ाई और पंक्ति ऊँचाई की आवश्यकता होती है (1 पॉइंट = 1/72 इंच)। एक मानक स्लाइड की चौड़ाई 720 पॉइंट्स और ऊँचाई 540 पॉइंट्स होती है।.

double[] colWidths = {200.0, 150.0, 150.0};   // 3 columns
double[] rowHeights = {45.0, 40.0, 40.0};     // 3 rows

चरण 4: तालिका जोड़ें

slide.getShapes().addTable(x, y, colWidths, rowHeights) स्थिति पर तालिका बनाता है (x, y):

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ICell;
import org.aspose.slides.foss.IParagraphCollection;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    double[] colWidths = {200.0, 150.0, 150.0};
    double[] rowHeights = {45.0, 40.0, 40.0};
    ITable table = slide.getShapes().addTable(50, 100, colWidths, rowHeights);

    prs.save("table.pptx", SaveFormat.PPTX);
}

चरण 5: कोशिका टेक्स्ट सेट करें

सेलों तक पहुँचें के द्वारा table.getRows().get(rowIndex).get(colIndex) और पाठ असाइन करें के माध्यम से .getTextFrame().setText():

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ICell;
import org.aspose.slides.foss.IParagraphCollection;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    double[] colWidths = {200.0, 150.0, 150.0};
    double[] rowHeights = {45.0, 40.0, 40.0};
    ITable table = slide.getShapes().addTable(50, 100, colWidths, rowHeights);

    // Header row (row 0)
    String[] headers = {"Product", "Units Sold", "Revenue"};
    for (int col = 0; col < headers.length; col++) {
        table.getRows().get(0).get(col).getTextFrame().setText(headers[col]);
    }

    // Data rows
    String[][] data = {
        {"Widget A", "1,200", "$24,000"},
        {"Widget B", "850", "$17,000"},
    };
    for (int row = 0; row < data.length; row++) {
        for (int col = 0; col < data[row].length; col++) {
            table.getRows().get(row + 1).get(col)
                .getTextFrame().setText(data[row][col]);
        }
    }

    prs.save("sales-table.pptx", SaveFormat.PPTX);
}

चरण 6: हेडर कोशिका टेक्स्ट को फ़ॉर्मेट करें

हेडर कोशिकाओं पर बोल्ड फॉर्मेटिंग लागू करें उपयोग करके PortionFormat:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ICell;
import org.aspose.slides.foss.IParagraphCollection;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

for (int col = 0; col < headers.length; col++) {
    ICell cell = table.getRows().get(0).get(col);
    IParagraphCollection paragraphs = cell.getTextFrame().getParagraphs();
    if (paragraphs.size() > 0 && paragraphs.get(0).getPortions().size() > 0) {
        IPortionFormat fmt = paragraphs.get(0).getPortions().get(0)
            .getPortionFormat();
        fmt.setFontBold(NullableBool.TRUE);
        fmt.getFillFormat().setFillType(FillType.SOLID);
        fmt.getFillFormat().getSolidFillColor().setColor(
            Color.fromArgb(255, 255, 255, 255)
        );
    }
}

पूर्ण कार्यशील उदाहरण

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ICell;
import org.aspose.slides.foss.IParagraphCollection;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

public class CreateTable {
    public static void main(String[] args) {
        String[][] dataRows = {
            {"North", "$1.2M", "+8%"},
            {"South", "$0.9M", "+4%"},
            {"East",  "$1.5M", "+12%"},
            {"West",  "$0.7M", "+2%"},
        };
        String[] headers = {"Region", "Revenue", "Growth"};

        try (Presentation prs = new Presentation()) {
            ISlide slide = prs.getSlides().get(0);

            double[] colWidths = {180.0, 140.0, 120.0};
            double[] rowHeights = new double[dataRows.length + 1];
            rowHeights[0] = 45.0;
            for (int i = 1; i < rowHeights.length; i++) {
                rowHeights[i] = 38.0;
            }

            ITable table = slide.getShapes().addTable(
                60, 80, colWidths, rowHeights
            );

            // Header row
            for (int col = 0; col < headers.length; col++) {
                ICell cell = table.getRows().get(0).get(col);
                cell.getTextFrame().setText(headers[col]);
                if (cell.getTextFrame().getParagraphs().size() > 0
                    && cell.getTextFrame().getParagraphs().get(0)
                        .getPortions().size() > 0) {
                    cell.getTextFrame().getParagraphs().get(0)
                        .getPortions().get(0).getPortionFormat()
                        .setFontBold(NullableBool.TRUE);
                }
            }

            // Data rows
            for (int row = 0; row < dataRows.length; row++) {
                for (int col = 0; col < dataRows[row].length; col++) {
                    table.getRows().get(row + 1).get(col)
                        .getTextFrame().setText(dataRows[row][col]);
                }
            }

            prs.save("regional-revenue.pptx", SaveFormat.PPTX);
        }
        System.out.println("Saved regional-revenue.pptx");
    }
}

सामान्य समस्याएँ और समाधान

IndexOutOfBoundsException पहुंचते समय table.getRows().get(row).get(col)

पंक्ति और स्तंभ सूचकांक शून्य-आधारित हैं। यदि आपने परिभाषित किया rowHeights 3 तत्वों के साथ, मान्य पंक्ति सूचकांक 0, 1, 2 हैं।.

सेव की गई फ़ाइल में कोशिका टेक्स्ट दिखाई नहीं देता

हमेशा असाइन करें के माध्यम से .getTextFrame().setText(value). कोशिकाओं को इस प्रकार एक्सेस करें table.getRows().get(rowIndex).get(colIndex).getTextFrame().setText("value").

टेबल की स्थिति स्लाइड से बाहर है

जाँचें कि x + sum(colWidths) <= 720 और y + sum(rowHeights) <= 540 एक मानक स्लाइड के लिए।.


अक्सर पूछे जाने वाले प्रश्न

क्या मैं टेबल की कोशिकाओं को मर्ज कर सकता हूँ?

सेल मर्जिंग (mergeCells) API में घोषित है लेकिन उत्पन्न करता है UnsupportedOperationException इस संस्करण में।.

क्या मैं टेबल-व्यापी बैकग्राउंड रंग लागू कर सकता हूँ?

प्रत्येक व्यक्तिगत सेल पर फ़िल फ़ॉर्मेटिंग लागू करें:

for (int row = 0; row < table.getRows().size(); row++) {
    for (int col = 0; col < table.getColumns().size(); col++) {
        ICell cell = table.getRows().get(row).get(col);
        cell.getFillFormat().setFillType(FillType.SOLID);
        cell.getFillFormat().getSolidFillColor().setColor(
            Color.fromArgb(255, 240, 248, 255)
        );
    }
}

क्या मैं तालिका शैली प्रीसेट सेट कर सकता हूँ?

हाँ। उपयोग करें table.setStylePreset(TableStylePreset.MEDIUM_STYLE_2_ACCENT_1) एक अंतर्निहित तालिका शैली लागू करने के लिए।.


संबंधित देखें

 हिन्दी