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

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

Aspose.Slides FOSS for Java स्लाइड्स पर कॉन्फ़िगर करने योग्य कॉलम चौड़ाई और पंक्ति ऊँचाई के साथ तालिकाएँ बनाने का समर्थन करता है। यह गाइड दिखाता है कि तालिका कैसे जोड़ें, उसे डेटा से भरें, और कोशिकाओं पर बुनियादी टेक्स्ट फ़ॉर्मेटिंग कैसे लागू करें।

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

चरण 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) का उपयोग करके बिल्ट‑इन टेबल स्टाइल लागू करें।


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

 हिन्दी