PowerPoint प्रस्तुतियों में Excel डेटा को एकीकृत करें

परिचय

PowerPoint प्रस्तुतियाँ जानकारी को प्रदर्शित करने और संप्रेषित करने का एक शक्तिशाली तरीका हैं। इन्हें अक्सर Excel वर्कबुक्स के साथ मिलाकर उपयोग किया जाता है, जहाँ Excel संरचित डेटा का उत्कृष्ट स्रोत प्रदान करता है और PowerPoint दर्शकों के लिए उस डेटा को दृश्य रूप में प्रस्तुत करने में उत्कृष्ट है।

Excel और PowerPoint को मिलाकर उपयोग करने के कई व्यावहारिक परिदृश्य हैं: मेल मर्ज, डेटा तालिकाओं को भरना, प्रत्येक डेटा रिकॉर्ड के लिए एक स्लाइड बनाना (बैच स्लाइड जनरेशन), प्रशिक्षण सामग्री बनाना, और कई Excel रिपोर्टों को एकल प्रस्तुति में समेकित करना, आदि।

अब तक, Aspose.Slides API के साथ ऐसी सुविधाएँ लागू करने के लिए Aspose.Cells जैसी तृतीय‑पक्षीय समाधान पर निर्भर रहना पड़ता था। जबकि ये उपकरण मजबूत हैं, वे केवल मूलभूत डेटा एकीकरण कार्यक्षमता की आवश्यकता वाले उपयोगकर्ताओं के लिए अत्यधिक जटिल और महंगे हो सकते हैं।

यह कैसे काम करता है

Excel डेटा के साथ काम को आसान और अधिक सहज बनाने के लिए, Aspose.Slides ने Excel वर्कबुक्स से डेटा पढ़ने और प्रस्तुति में सामग्री आयात करने के लिए नई कक्षाएँ पेश की हैं। यह सुविधा API उपयोगकर्ताओं को अपनी प्रस्तुति कार्यप्रवाह में डेटा स्रोत के रूप में Excel का उपयोग करने के लिए शक्तिशाली नई संभावनाएँ खोलती है।

नई कार्यक्षमता सामान्य‑उपयोग डेटा पहुँच के लिए डिज़ाइन की गई है और इसे प्रस्तुति दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) में एकीकृत नहीं किया गया है। इसका अर्थ है यह Excel फ़ाइलों को संपादित या सहेज नहीं सकता — इसका एकमात्र उद्देश्य वर्कबुक खोलना और उसकी सामग्री में नेविगेट करके सेल डेटा प्राप्त करना है।

इस सुविधा का मूल नया ExcelDataWorkbook क्लास है। यह क्लास आपको स्थानीय फ़ाइल या स्ट्रीम से Excel वर्कबुक लोड करने की अनुमति देती है। लोड करने के बाद, यह getCell मेथड के कई ओवरलोड प्रदान करता है, जिसका उपयोग आप उनकी स्थिति (जैसे, पंक्ति और कॉलम सूचकांक या नामित रेंज) के अनुसार विशिष्ट सेल प्राप्त करने के लिए कर सकते हैं।

प्रत्येक कॉल getCell एक ExcelDataCell क्लास की उदाहरण लौटाता है। यह वस्तु Excel वर्कबुक में एकल सेल का प्रतिनिधित्व करती है और आपको उसके मान तक सरल और सहज तरीके से पहुँच प्रदान करती है।

एक Excel चार्ट आयात करें

फ़ंक्शनैलिटी का अगला चरण ExcelWorkbookImporter क्लास है। यह यूटिलिटी क्लास Excel वर्कबुक से सामग्री को प्रस्तुति में आयात करने की कार्यक्षमता प्रदान करती है। इसमें addChartFromWorkbook मेथड के कई ओवरलोड शामिल हैं, जो निर्दिष्ट Excel वर्कबुक से चयनित चार्ट प्राप्त करके दिए गए आकार संग्रह के अंत में निर्दिष्ट निर्देशांक पर जोड़ने में मदद करते हैं।

संक्षेप में, यह Excel डेटा पढ़ने के लिए एक हल्का और सीधा API है — ठीक वही जो कई डेवलपर्स को पूर्ण स्प्रेडशीट प्रोसेसिंग लाइब्रेरी के ओवरहेड के बिना चाहिए।

आइए कोड लिखें

मेल मर्ज परिदृश्य उदाहरण

निम्न उदाहरण में, हम एक सरल मेल मर्ज परिदृश्य को लागू करेंगे, जहाँ हम Excel वर्कबुक में संग्रहीत डेटा के आधार पर कई प्रस्तुतियों को जनरेट करेंगे।

शुरू करने के लिए, हमें दो चीज़ें चाहिए:

  1. डेटा वाली एक Excel वर्कबुक

Excel डेटा उदाहरण

  1. PowerPoint प्रस्तुति टेम्पलेट

PowerPoint टेम्पलेट उदाहरण

// कर्मचारी डेटा वाली Excel वर्कबुक लोड करें।
ExcelDataWorkbook workbook = new ExcelDataWorkbook("TemplateData.xlsx");
int worksheetIndex = 0;

// प्रस्तुति टेम्प्लेट लोड करें।
Presentation templatePresentation = new Presentation("PresentationTemplate.pptx");

try {
    // Excel पंक्तियों पर लूप करें (पंक्ति 0 में हेडर को छोड़ते हुए).
    for (int rowIndex = 1; rowIndex <= 4; rowIndex++) {

        // प्रत्येक कर्मचारी रिकॉर्ड के लिए नई प्रस्तुति बनाएं.
        Presentation employeePresentation = new Presentation();

        try {
            // डिफ़ॉल्ट खाली स्लाइड हटाएं.
            employeePresentation.getSlides().removeAt(0);

            // टेम्प्लेट स्लाइड को नई प्रस्तुति में क्लोन करें.
            ISlide slide = employeePresentation.getSlides().addClone(templatePresentation.getSlides().get_Item(0));

            // लक्ष्य आकार से पैराग्राफ प्राप्त करें (मानते हैं कि आकार सूचकांक 1 प्रयुक्त है).
            IParagraphCollection paragraphs = ((IAutoShape)slide.getShapes().get_Item(1)).getTextFrame().getParagraphs();

            // प्लेसहोल्डर को Excel डेटा से बदलें.
            String employeeName = workbook.getCell(worksheetIndex, rowIndex, 0).getValue().toString();
            IPortion namePortion = paragraphs.get_Item(0).getPortions().get_Item(0);
            namePortion.setText(namePortion.getText().replace("{{EmployeeName}}", employeeName));

            String department = workbook.getCell(worksheetIndex, rowIndex, 1).getValue().toString();
            IPortion departmentPortion = paragraphs.get_Item(1).getPortions().get_Item(0);
            departmentPortion.setText(departmentPortion.getText().replace("{{Department}}", department));

            String yearsOfService = workbook.getCell(worksheetIndex, rowIndex, 2).getValue().toString();
            IPortion yearsPortion = paragraphs.get_Item(2).getPortions().get_Item(0);
            yearsPortion.setText(yearsPortion.getText().replace("{{YearsOfService}}", yearsOfService));

            // व्यक्तिगत प्रस्तुति को एक अलग फ़ाइल में सहेजें.
            employeePresentation.save(String.format("%s Report.pptx", employeeName), SaveFormat.Pptx);
        } finally {
            employeePresentation.dispose();
        }
    }
} finally {
    templatePresentation.dispose();
}

परिणाम

Excel तालिका उदाहरण

दूसरे उदाहरण में, हम सरलता से Excel तालिका से डेटा कॉपी करके उसे PowerPoint स्लाइड पर अधिक दृश्यात्मक रूप से आकर्षक प्रारूप में प्रदर्शित करते हैं।

इस उदाहरण में, हम पहले उदाहरण की वही Excel वर्कबुक पुनः उपयोग करते हैं, जिसमें एक सरल कर्मचारी तालिका है।

// कर्मचारी डेटा वाली Excel वर्कबुक लोड करें।
ExcelDataWorkbook workbook = new ExcelDataWorkbook("TemplateData.xlsx");
int worksheetIndex = 0;

// नई PowerPoint प्रस्तुति बनाएं।
Presentation presentation = new Presentation();

try {
    // पहली स्लाइड पर टेबल आकार जोड़ें.
    ITable table = presentation.getSlides().get_Item(0).getShapes().addTable(
            50, 200,
            new double[]{200, 200, 200},
            new double[]{30, 30, 30, 30, 30}
    );

    // Excel वर्कबुक से डेटा के साथ PowerPoint टेबल भरें.
    for (int rowIndex = 0; rowIndex < 5; rowIndex++) {
        for (int columnIndex = 0; columnIndex < 3; columnIndex++) {
            String cellValue = workbook.getCell(worksheetIndex, rowIndex, columnIndex).getValue().toString();
            table.getColumns().get_Item(columnIndex).get_Item(rowIndex).getTextFrame().setText(cellValue);
        }
    }

    // उत्पन्न प्रस्तुति को फ़ाइल में सहेजें.
    presentation.save("Table.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

परिणाम

एक Excel चार्ट आयात करें उदाहरण

इस उदाहरण में, हम पिछले उदाहरण में उपयोग की गई Excel वर्कबुक की पहली कार्यपत्रिका से एक चार्ट आयात करते हैं। उत्पन्न प्रस्तुति में चार्ट बाहरी वर्कबुक से लिंक होगा।

सबसे पहले, हम कर्मचारियों की तालिका के आधार पर Excel वर्कबुक में एक पाई चार्ट जोड़ते हैं।

Excel चार्ट उदाहरण

// नई PowerPoint प्रस्तुति बनाएं.
Presentation presentation = new Presentation();
try {
    // पहली स्लाइड के आकार संग्रह प्राप्त करें.
    IShapeCollection shapes = presentation.getSlides().get_Item(0).getShapes();

    // वर्कबुक की पहली शीट से "Chart 1" नामक चार्ट आयात करके आकार संग्रह में जोड़ें.
    ExcelWorkbookImporter.addChartFromWorkbook(shapes, 10, 10, "TemplateData.xlsx", "Sheet1", "Chart 1", false);

    // परिणामी प्रस्तुति को फ़ाइल में सहेजें.
    presentation.save("Chart.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

परिणाम

सभी Excel चार्ट आयात करें उदाहरण

कल्पना करें कि आपके पास चार्ट‑भरी एक Excel वर्कबुक है और आपको सभी चार्ट को प्रस्तुति में आयात करना है। प्रत्येक चार्ट को एक नई स्लाइड पर रखा जाना चाहिए।

निम्नलिखित कोड स्रोत Excel फ़ाइल की सभी कार्यपत्रिकाओं पर इटरिट करता है, प्रत्येक कार्यपत्रिका से चार्ट निकालता है, और प्रत्येक चार्ट को एक खाली स्लाइड लेआउट का उपयोग करके अलग स्लाइड में जोड़ता है। उत्पन्न प्रस्तुति में केवल चार्ट डेटा एम्बेड होगा, पूरी वर्कबुक नहीं।

// कर्मचारियों का डेटा वाली Excel वर्कबुक लोड करें.
ExcelDataWorkbook workbook = new ExcelDataWorkbook("ExcelWithCharts.xlsx");

// नई PowerPoint प्रस्तुति बनाएं.
Presentation presentation = new Presentation();
try {
    // खाली स्लाइड लेआउट प्राप्त करें.
    ILayoutSlide blankLayout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);

    // Excel वर्कबुक में शामिल सभी कार्यपत्रिकाओं के नाम प्राप्त करें.
    List<String> worksheetNames = workbook.getWorksheetNames();

    for (String name : worksheetNames) {
        // कार्यपत्रिका के लिए चार्ट अनुक्रमणिका को चार्ट नामों से मैप करने वाला मानचित्र प्राप्त करें.
        Dictionary<Integer, String> worksheetCharts = workbook.getChartsFromWorksheet(name);

        for (KeyValuePair<Integer, String> chart : worksheetCharts) {
            // खाली लेआउट का उपयोग करके नई स्लाइड जोड़ें.
            ISlide slide = presentation.getSlides().addEmptySlide(blankLayout);

            // Excel वर्कबुक से निर्दिष्ट चार्ट को स्लाइड के आकार संग्रह में आयात करें.
            ExcelWorkbookImporter.addChartFromWorkbook(
                    slide.getShapes(), 10, 10, workbook, name, chart.getKey(), false);
        }
    }

    // परिणामी प्रस्तुति को फ़ाइल में सहेजें.
    presentation.save("Charts.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

सारांश

यह तंत्र, जो सीधे Aspose.Slides में उपलब्ध है, Excel डेटा और प्रस्तुतियों को एक ही स्थान पर संयोजित करता है। यह आपको दृश्य चार्ट और Excel तालिकाओं के रूप में प्रस्तुत डेटा के साथ स्लाइड बनाने की सुविधा देता है — बिना किसी अतिरिक्त लाइब्रेरी या जटिल एकीकरण के।