Volkan Atasever
Software Specialist Diary

Dinamik olarak PowerPoint Sunusu oluşturmak

Çarşamba, 29 Ekim 2008 05:53 by Admin

       Yine C# ile yazılmış küçük ve kullanışlı bir uygulama bir soru üstüne internetten bulmuştum bu kodu. Güzel bir uygulama gerçekten. eğer uygulamanızda dinamik bir şekilde powerpoint sunusu oluşturmak isterseniz işe yarıyor. Fazla söze gerek yok deneyimli geliştiricelerde çoğunlukla az söz çok iş derler :) Bu sınıfı kullanarak veya biraz daha geliştirerek iyi iş çıkartabilirsiniz. Kolay gelsin. 

 

using System;
using System.Collections.Specialized;
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;

namespace MSPPTApp
{

 public class PPTAuto
 {
  PowerPoint.Application objApp;
  PowerPoint.Presentations objPresSet;
  PowerPoint._Presentation objPres;
  PowerPoint.Slides objSlides;
  PowerPoint._Slide objSlide;
  PowerPoint.TextRange objTextRng;
  PowerPoint.TextRange objTextRng1;

 

  public PPTAuto()
  {

  }
  public void CreateFile(StringCollection array)
  {
   String strTemplate;
   strTemplate = "Template'in yolunu buraya yazın";

   // yeni sunum yaratma 
   objApp = new PowerPoint.Application();
   objApp.Visible = MsoTriState.msoTrue;
   objPresSet = objApp.Presentations;
   objPres = objPresSet.Open(strTemplate,
    MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
   
   objSlides = objPres.Slides;

   // Slide ekleme 
   objSlide = objSlides.Add(1,PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
   
  
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,100,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,150,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,200,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,250,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,300,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,350,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,400,500,80);

   objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
   objTextRng.Text = "These are my details";
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[2].TextFrame.TextRange;
   objTextRng.Text =array[0] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[3].TextFrame.TextRange;
   objTextRng.Text =array[1] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[4].TextFrame.TextRange;
   objTextRng.Text =array[2] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[5].TextFrame.TextRange;
   objTextRng.Text =array[3] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[6].TextFrame.TextRange;
   objTextRng.Text =array[4] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[7].TextFrame.TextRange;
   objTextRng.Text =array[5] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

 

//   // Slide'ın üstüne iki şekil ekle 
//   PowerPoint.Shape objSquareShape = objSlide.Shapes.AddShape
//            (MsoAutoShapeType.msoShapeRectangle,
//             0, 0, 100, 100);
//   PowerPoint.Shape objTriangleShape =  objSlide.Shapes.AddShape
//            (MsoAutoShapeType.msoShapeRightTriangle,
//              0, 150, 100, 100);
//
//
//   PowerPoint.TextFrame = objSlide.Shapes.AddShape(
//         (MsoAutoShapeType.msoShapeRectangle,
//          0, 0, 100, 100);

//   objTextRng1 = objSlide.Shapes[2].TextFrame.TextRange;
//   objTextRng1.Text = "My Sample Presentation";
//   objTextRng1.Font.Name = "Arial";
//   objTextRng1.Font.Size = 20;

  


  }

 }
}

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5