Altbilgi içeriğine atla
PPT ARAçLARı
C# kullanarak PowerPoint Sunumu Oluşturma Nasıl Yapılır

C# dilinde PowerPoint Sunumlarını Programatik Olarak Oluşturma ve Otomatikleştirme

Haftadan haftaya aynı PowerPoint sunumunu manuel olarak oluşturmak, hiç bir geliştiricinin hoşlanmadığı sıkıcı ve hata yapmaya yatkın bir görevdir. İster haftalık satış raporları, ister aylık mali özetler veya kişiselleştirilmiş müşteri teklifleri oluşturmak için olsun, süreç otomasyon için hazırdır. Yıllardır, .NET dünyasında gidilecek çözüm, Office uygulamalarını programlı olarak kontrol etmeye olanak tanıyan bir teknoloji olan Microsoft Office Interop'tu. Ancak, bu yaklaşım önemli dezavantajlarla birlikte gelir: Sunucuda lisanslı bir Microsoft Office sürümünün kurulu olmasını gerektirir, sunucu ortamlarında ünlü bir şekilde istikrarsızdır ve Linux, macOS veya Docker konteynerlerinde modern, çok platformlu dağıtımları tamamen dışlar.

Neyse ki, daha iyi bir yol var. Bu öğretici, modern geliştirme için tasarlanmış güçlü ve hafif bir kütüphane olan IronPPT for .NETkullanarak, C#'da programlı olarak PowerPoint sunumları oluşturmayı nasıl yapacağınızı gösterecek. Basit bir slayt destesi oluşturmaktan, şablonlardan tam tablolar ve grafikler içeren karmaşık, veri odaklı sunumlar oluşturmaya kadar her şeyi otomatikleştirmenin yollarını keşfedeceğiz. IronPPT ile, Microsoft Office'e bağımlı olmadan her yerde çalışabilen, hızlı, ölçeklenebilir ve güvenilir sunum otomasyon iş akışları oluşturabilirsiniz.

IronPPT - C# Sunum Kütüphanesi IronPPT for .NET kütüphanesi, geliştiricilerin C# dilinde programlı olarak PowerPoint dosyaları oluşturmasına ve yönetmesine olanak tanır.

C# Dilinde PowerPoint Oluşturulmasına Nasıl Başlayabilirim?

C#'da PowerPoint otomasyonuna başlamak basittir. IronPPT for .NET, NuGet paketi olarak dağıtılır ve birkaç saniye içinde doğrudan Visual Studio projenize kurulabilir.

Adım 1: IronPPT Kütüphanesini Yükleyin

Visual Studio (Tools > NuGet Package Manager > Package Manager Console) içinde Paket Yöneticisi Konsolunu açın ve aşağıdaki komutu girin:

Install-Package IronPPT

Alternatif olarak, NuGet Paket Yöneticisi GUI'den "IronPPT" arayabilir ve oradan yükleyebilirsiniz.

NuGet Paket Yöneticisi ekranı üzerinden IronPPT yükleme Visual Studio'daki NuGet Paket Yöneticisi, IronPPT kütüphanesinin kurulumunu gösteriyor.

Adım 2: İlk Sunumunuzu Oluşturun ve Kaydedin

Kütüphane yüklendikten sonra, sadece birkaç satır C# koduyla ilk PowerPoint sunumunuzu oluşturabilirsiniz. Herhangi bir sunum için temel sınıf PresentationDocument'dir.

Aşağıdaki kod parçası yeni bir sunum başlatır, başlık içeren tek bir slayt ekler ve onu .pptx dosyası olarak kaydeder.

using IronPPT;

// Before using IronPPT, a license key is required.
// Get a free 30-day trial key at: https://ironsoftware.com/csharp/ppt/licensing/#trial-license
License.LicenseKey = "YOUR-LICENSE-KEY";

// Create a new PowerPoint presentation document
var presentation = new PresentationDocument();

// Create a new slide object
var slide = new Slide();

// Add text to the slide, which will be placed in a default textbox
slide.AddText("Hello, World! Welcome to Programmatic PowerPoint Creation.");

// Add the slide to the presentation
presentation.AddSlide(slide);

// Save the presentation to a.pptx file
presentation.Save("MyFirstPresentation.pptx");
using IronPPT;

// Before using IronPPT, a license key is required.
// Get a free 30-day trial key at: https://ironsoftware.com/csharp/ppt/licensing/#trial-license
License.LicenseKey = "YOUR-LICENSE-KEY";

// Create a new PowerPoint presentation document
var presentation = new PresentationDocument();

// Create a new slide object
var slide = new Slide();

// Add text to the slide, which will be placed in a default textbox
slide.AddText("Hello, World! Welcome to Programmatic PowerPoint Creation.");

// Add the slide to the presentation
presentation.AddSlide(slide);

// Save the presentation to a.pptx file
presentation.Save("MyFirstPresentation.pptx");
Imports IronPPT

' Before using IronPPT, a license key is required.
' Get a free 30-day trial key at: https://ironsoftware.com/csharp/ppt/licensing/#trial-license
License.LicenseKey = "YOUR-LICENSE-KEY"

' Create a new PowerPoint presentation document
Dim presentation = New PresentationDocument()

' Create a new slide object
Dim slide As New Slide()

' Add text to the slide, which will be placed in a default textbox
slide.AddText("Hello, World! Welcome to Programmatic PowerPoint Creation.")

' Add the slide to the presentation
presentation.AddSlide(slide)

' Save the presentation to a.pptx file
presentation.Save("MyFirstPresentation.pptx")
$vbLabelText   $csharpLabel

Bu kodu çalıştırdıktan sonra, proje çıkış dizininde MyFirstPresentation.pptx adlı yeni bir dosya bulacaksınız. Açtığınızda, eklediğiniz metinle tek bir slayt göreceksiniz. Bu basit örnek, bir sunum nesnesi oluşturmanın, içerik eklemenin ve dosyayı kaydetmenin temel iş akışını gösterir.

IronPPT kullanarak oluşturulan boş sunum C# ve IronPPT ile programlı olarak oluşturulan boş bir PowerPoint sunumu.

Slaytları Programlı Olarak Nasıl Ekler ve Yönetirim?

Bir sunum, slaytlar koleksiyonudur. IronPPT, bu slaytları yönetmek için basit ve sezgisel bir API sağlar, böylece uygulamanız için ihtiyaç duyduğunuz şekilde ekleyebilir, yükleyebilir ve yeniden kullanabilirsiniz.

Mevcut Bir Sunum Yükleme ve Slayt Ekleme

Genellikle, sıfırdan bir sunum oluşturmak yerine mevcut bir sunumu değiştirmeniz gerekebilir. Bir .pptx dosyasını diskteki yolunu PresentationDocument yapıcıya geçirerek yükleyebilirsiniz. Yüklendikten sonra yeni slaytlar kolayca ekleyebilirsiniz.

Aşağıdaki örnek, daha önce oluşturduğumuz sunumu yükler ve ona yeni, boş bir slayt ekler.

using IronPPT;

// Load an existing PowerPoint presentation
var presentation = new PresentationDocument("MyFirstPresentation.pptx");

// Add a new blank slide to the end of the presentation
presentation.AddSlide();

// Save the modified presentation
presentation.Save("PresentationWithTwoSlides.pptx");
using IronPPT;

// Load an existing PowerPoint presentation
var presentation = new PresentationDocument("MyFirstPresentation.pptx");

// Add a new blank slide to the end of the presentation
presentation.AddSlide();

// Save the modified presentation
presentation.Save("PresentationWithTwoSlides.pptx");
Imports IronPPT

' Load an existing PowerPoint presentation
Private presentation = New PresentationDocument("MyFirstPresentation.pptx")

' Add a new blank slide to the end of the presentation
presentation.AddSlide()

' Save the modified presentation
presentation.Save("PresentationWithTwoSlides.pptx")
$vbLabelText   $csharpLabel

Bu işlevsellik, zamanla bilgi ekleyen uygulamalar için özellikle kullanışlıdır, örneğin günlük veya durum raporlama sistemleri.

İki Boş Slayt Aynı sunum, şimdi C# kodu ile eklenmiş ikinci bir boş slayt içeriyor.

using IronPPT;
using IronPPT.Models;

// Loading an existing presentation file
var ppt = new PresentationDocument("output.pptx");

// Add an additional slide
ppt.AddSlide();

// Save the updated presentation
ppt.Save("output.pptx");
using IronPPT;
using IronPPT.Models;

// Loading an existing presentation file
var ppt = new PresentationDocument("output.pptx");

// Add an additional slide
ppt.AddSlide();

// Save the updated presentation
ppt.Save("output.pptx");
Imports IronPPT
Imports IronPPT.Models

' Loading an existing presentation file
Private ppt = New PresentationDocument("output.pptx")

' Add an additional slide
ppt.AddSlide()

' Save the updated presentation
ppt.Save("output.pptx")
$vbLabelText   $csharpLabel

Tutarlı Düzenler İçin Slaytları Klonlama

Çoğu iş senaryosunda, raporlar veya tekliflerin oluşturulması gibi, aynı düzeni, arka planı ve logolar veya dipnotlar gibi marka unsurlarını paylaşan birden fazla slayda ihtiyacınız vardır. Bu slaytların her birini el ile koddan oluşturmak tekrarlayıcı ve bakımını zor yapar.

Daha verimli bir yaklaşım, sunumunuzda bir "şablon" slayt oluşturmak ve ardından bunu programlı olarak klonlamaktır. IronPPT, kamu API'sinde doğrudan bir Clone() yöntemi içermese de, bu, yeni bir slayt oluşturarak ve şablon slayttan istenen özellik ve öğeleri kopyalayarak gerçekleştirilebilir. Şablonlar ile sıklıkla kullanılan daha doğrudan bir yaklaşım, slaytları önden tasarlayıp ardından veri ile doldurmaktır; bu, veri odaklı bölümde ele alınacaktır. Şimdilik, bu, oluşturulan sunumlarınızda tasarım tutarlılığını korumanın güçlü bir konseptini gösteriyor, diğer kütüphaneler, örneğin Syncfusion gibi, bu özelliği görüyoruz.

Slaytlara Zengin İçerik Eklemek İçin En İyi Yöntem Nedir?

Slaytlarınızı aldıktan sonra, anlamlı içerikle doldurmak bir sonraki adımdır. IronPPT, metin ekleme ve biçimlendirme, görüntü ekleme ve şekil çizme için zengin bir nesne modeli sunar.

Metin, Yazı Tipleri ve Paragraflarla Çalışma

Metin, herhangi bir sunumun en yaygın unsurudur. IronPPT içinde, metin Shape (bir metin kutusu olarak işlev gören), Paragraph ve Text'den oluşan bir nesne hiyerarşisi aracılığıyla yönetilir. Bu yapı, konumlandırma ve stil üzerinde ayrıntılı kontrol sağlar.

İki slaytlı sunumumuza bir stil verilmiş başlık ekleyip ikinci slayta madde işaretli liste ekleyerek genişleteceğiz.

using IronPPT;
using IronPPT.Enums;
using System.Drawing;

// Load the presentation with two slides
var presentation = new PresentationDocument("PresentationWithTwoSlides.pptx");

// --- Modify the First Slide ---
Slide firstSlide = presentation.Slides;

// Clear existing text if any
firstSlide.ClearText();

// Add a title to the first slide. By default, AddText creates a textbox.
// For more control, we can create a Shape and add text to it.
Shape titleShape = firstSlide.AddShape(ShapeType.Rectangle, new Rectangle(50, 50, 860, 100));
titleShape.Fill.SetSolid(new Color("#003B5C")); // A dark blue background
Paragraph titleParagraph = titleShape.AddParagraph("Welcome to IronPPT");
titleParagraph.DefaultTextStyle.SetFont("Arial", 44).SetColor(Color.White).SetBold(true);
titleParagraph.Style.SetAlignment(TextAlignmentTypeValues.Center);

// --- Modify the Second Slide ---
Slide secondSlide = presentation.Slides;
secondSlide.AddText("Key Features", new Rectangle(50, 30, 860, 70))
   .DefaultTextStyle.SetFont("Calibri", 36).SetBold(true);

// Create a shape to act as a textbox for our bulleted list
Shape listShape = secondSlide.AddShape(ShapeType.Rectangle, new Rectangle(70, 120, 800, 300));

// Add a bulleted list
listShape.AddParagraph("Create presentations programmatically").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Add text, images, and shapes").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Style content with fonts, colors, and alignment").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Generate data-driven reports from templates").Style.SetBullet(BulletType.Numeric);

// Style all paragraphs in the list shape
foreach (var para in listShape.Paragraphs)
{
    para.DefaultTextStyle.SetFont("Arial", 28);
    para.Style.SetIndentation(30); // Indent the list
}

// Save the final presentation
presentation.Save("PresentationWithRichContent.pptx");
using IronPPT;
using IronPPT.Enums;
using System.Drawing;

// Load the presentation with two slides
var presentation = new PresentationDocument("PresentationWithTwoSlides.pptx");

// --- Modify the First Slide ---
Slide firstSlide = presentation.Slides;

// Clear existing text if any
firstSlide.ClearText();

// Add a title to the first slide. By default, AddText creates a textbox.
// For more control, we can create a Shape and add text to it.
Shape titleShape = firstSlide.AddShape(ShapeType.Rectangle, new Rectangle(50, 50, 860, 100));
titleShape.Fill.SetSolid(new Color("#003B5C")); // A dark blue background
Paragraph titleParagraph = titleShape.AddParagraph("Welcome to IronPPT");
titleParagraph.DefaultTextStyle.SetFont("Arial", 44).SetColor(Color.White).SetBold(true);
titleParagraph.Style.SetAlignment(TextAlignmentTypeValues.Center);

// --- Modify the Second Slide ---
Slide secondSlide = presentation.Slides;
secondSlide.AddText("Key Features", new Rectangle(50, 30, 860, 70))
   .DefaultTextStyle.SetFont("Calibri", 36).SetBold(true);

// Create a shape to act as a textbox for our bulleted list
Shape listShape = secondSlide.AddShape(ShapeType.Rectangle, new Rectangle(70, 120, 800, 300));

// Add a bulleted list
listShape.AddParagraph("Create presentations programmatically").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Add text, images, and shapes").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Style content with fonts, colors, and alignment").Style.SetBullet(BulletType.Numeric);
listShape.AddParagraph("Generate data-driven reports from templates").Style.SetBullet(BulletType.Numeric);

// Style all paragraphs in the list shape
foreach (var para in listShape.Paragraphs)
{
    para.DefaultTextStyle.SetFont("Arial", 28);
    para.Style.SetIndentation(30); // Indent the list
}

// Save the final presentation
presentation.Save("PresentationWithRichContent.pptx");
Imports IronPPT
Imports IronPPT.Enums
Imports System.Drawing

' Load the presentation with two slides
Private presentation = New PresentationDocument("PresentationWithTwoSlides.pptx")

' --- Modify the First Slide ---
Private firstSlide As Slide = presentation.Slides

' Clear existing text if any
firstSlide.ClearText()

' Add a title to the first slide. By default, AddText creates a textbox.
' For more control, we can create a Shape and add text to it.
Dim titleShape As Shape = firstSlide.AddShape(ShapeType.Rectangle, New Rectangle(50, 50, 860, 100))
titleShape.Fill.SetSolid(New Color("#003B5C")) ' A dark blue background
Dim titleParagraph As Paragraph = titleShape.AddParagraph("Welcome to IronPPT")
titleParagraph.DefaultTextStyle.SetFont("Arial", 44).SetColor(Color.White).SetBold(True)
titleParagraph.Style.SetAlignment(TextAlignmentTypeValues.Center)

' --- Modify the Second Slide ---
Dim secondSlide As Slide = presentation.Slides
secondSlide.AddText("Key Features", New Rectangle(50, 30, 860, 70)).DefaultTextStyle.SetFont("Calibri", 36).SetBold(True)

' Create a shape to act as a textbox for our bulleted list
Dim listShape As Shape = secondSlide.AddShape(ShapeType.Rectangle, New Rectangle(70, 120, 800, 300))

' Add a bulleted list
listShape.AddParagraph("Create presentations programmatically").Style.SetBullet(BulletType.Numeric)
listShape.AddParagraph("Add text, images, and shapes").Style.SetBullet(BulletType.Numeric)
listShape.AddParagraph("Style content with fonts, colors, and alignment").Style.SetBullet(BulletType.Numeric)
listShape.AddParagraph("Generate data-driven reports from templates").Style.SetBullet(BulletType.Numeric)

' Style all paragraphs in the list shape
For Each para In listShape.Paragraphs
	para.DefaultTextStyle.SetFont("Arial", 28)
	para.Style.SetIndentation(30) ' Indent the list
Next para

' Save the final presentation
presentation.Save("PresentationWithRichContent.pptx")
$vbLabelText   $csharpLabel

Bu örnek birkaç anahtar konsepti göstermektedir:

  • Metin Kutusu Olarak Şekiller: Metnimiz için bir kap olarak hizmet verecek türde bir Shape oluşturuyoruz. Bu bize konum ve boyut üzerinde kesin kontrol sağlar.
  • Paragraflar: Metin içeriği, Paragraph nesneleri aracılığıyla eklenir.
  • Stil: Bir Paragraph nesnesinin DefaultTextStyle özelliği, yazı tipi, boyutu, rengi ve ağırlığının akıcı biçimlendirilmesine izin verir. Style özelliği, hizalama ve madde işaretleri gibi paragraf düzeyinde biçimlendirmeyi kontrol eder.

Metin ve metin kutuları ekleme İlk slayt şimdi stilize edilmiş bir başlık, ikinci slayt ise madde işaretli bir liste içeriyor.

Görüntü Ekleme ve Konumlandırma

Logolar, grafikler ve ürün resimleri gibi görsel öğeler, ilgi çekici sunumlar için gereklidir. IronPPT, bir dosyadan veya hafıza akışından resim eklemeyi kolaylaştırır.

Aşağıdaki kod, başlık slaytımızın sağ alt köşesine Iron Software logosunu ekler.

using IronPPT;
using System.Drawing;

var presentation = new PresentationDocument("PresentationWithRichContent.pptx");
Slide firstSlide = presentation.Slides;

// Load an image from a file
Image logo = new Image("iron_logo.png");

// Add the image to the slide and set its properties
var addedImage = firstSlide.AddImage(logo);
addedImage.Position = new Point(750, 450);
addedImage.Width = 150;
addedImage.Height = 75;

presentation.Save("PresentationWithImage.pptx");
using IronPPT;
using System.Drawing;

var presentation = new PresentationDocument("PresentationWithRichContent.pptx");
Slide firstSlide = presentation.Slides;

// Load an image from a file
Image logo = new Image("iron_logo.png");

// Add the image to the slide and set its properties
var addedImage = firstSlide.AddImage(logo);
addedImage.Position = new Point(750, 450);
addedImage.Width = 150;
addedImage.Height = 75;

presentation.Save("PresentationWithImage.pptx");
Imports IronPPT
Imports System.Drawing

Private presentation = New PresentationDocument("PresentationWithRichContent.pptx")
Private firstSlide As Slide = presentation.Slides

' Load an image from a file
Private logo As New Image("iron_logo.png")

' Add the image to the slide and set its properties
Private addedImage = firstSlide.AddImage(logo)
addedImage.Position = New Point(750, 450)
addedImage.Width = 150
addedImage.Height = 75

presentation.Save("PresentationWithImage.pptx")
$vbLabelText   $csharpLabel

AddImage yöntemi, slayda eklendikten sonra onun Position, Width, Height ve döndürme (Angle) gibi özelliklerini daha fazla manipüle etmenize olanak tanıyan bir Image nesnesi döndürür.

İlk slayta resim ekleme Başlık slaydı şimdi sağ alt köşeye yerleştirilmiş bir görüntü içeriyor.

Şekil Çizme ve Özelleştirme

Metin kutuları için kullanılan dikdörtgenlerin ötesinde, IronPPT slaytlarınıza görsel yapı ve vurgu eklemek için çeşitli şekiller çizebilir. Geometrisini, renklerini ve konumunu kontrol edebilirsiniz.

İçeriği görsel olarak ayırmak için ikinci slayta dekoratif bir şekil ekleyelim.

using IronPPT;
using IronPPT.Enums;
using System.Drawing;

var presentation = new PresentationDocument("PresentationWithImage.pptx");
Slide secondSlide = presentation.Slides;

// Add a circle shape to the second slide
Shape circle = secondSlide.AddShape(ShapeType.Ellipse, new Rectangle(400, 250, 200, 200));
circle.Name = "DecorativeCircle";

// Customize the shape's appearance
circle.Fill.SetSolid(new Color("#E0F7FA")); // A light cyan color
circle.Outline.SetColor(new Color("#00796B")).SetWidth(3); // A teal outline

presentation.Save("PresentationWithShapes.pptx");
using IronPPT;
using IronPPT.Enums;
using System.Drawing;

var presentation = new PresentationDocument("PresentationWithImage.pptx");
Slide secondSlide = presentation.Slides;

// Add a circle shape to the second slide
Shape circle = secondSlide.AddShape(ShapeType.Ellipse, new Rectangle(400, 250, 200, 200));
circle.Name = "DecorativeCircle";

// Customize the shape's appearance
circle.Fill.SetSolid(new Color("#E0F7FA")); // A light cyan color
circle.Outline.SetColor(new Color("#00796B")).SetWidth(3); // A teal outline

presentation.Save("PresentationWithShapes.pptx");
Imports IronPPT
Imports IronPPT.Enums
Imports System.Drawing

Private presentation = New PresentationDocument("PresentationWithImage.pptx")
Private secondSlide As Slide = presentation.Slides

' Add a circle shape to the second slide
Private circle As Shape = secondSlide.AddShape(ShapeType.Ellipse, New Rectangle(400, 250, 200, 200))
circle.Name = "DecorativeCircle"

' Customize the shape's appearance
circle.Fill.SetSolid(New Color("#E0F7FA")) ' A light cyan color
circle.Outline.SetColor(New Color("#00796B")).SetWidth(3) ' A teal outline

presentation.Save("PresentationWithShapes.pptx")
$vbLabelText   $csharpLabel

Bu kod, hafif cam gölgeli bir dolgulu ve teal konturlu bir daire ekler. Şekilleri programlı olarak ekleyip stil verme yeteneği, özel diyagramlar, akış şemaları oluşturmak veya yalnızca otomatik sunumlarınızın görsel tasarımını geliştirmek için değeri artırır.

Şekilli Bir Çember İkinci slayt şimdi C# kodu ile eklenmiş şekillendirilmiş bir daire içerir.

Veri Odaklı Sunumlar Nasıl Oluşturabilirim?

PowerPoint otomasyonunun gerçek gücü, dinamik veri kaynaklarından sunumlar oluşturmaktır. IronPPT bu noktada parlıyor, tablolar oluşturabilen, grafikler ekleyebilen ve şablonları anında doldurabilen gelişmiş raporlama sistemleri oluşturmanıza olanak tanır. Bu yetenek, onu temel kütüphanelerden ayırır ve Aspose ve Syncfusion gibi araçlarla rekabet eden güçlü bir rakip konumuna getirir, ki bu araçlar da veri odaklı özellikleri vurgular.

Dinamik Raporlar İçin Şablon KullanmA

En etkili iş akışlarından biri, önceden tanımlanmış düzenler ve yer tutucu metinlerle bir ana PowerPoint şablonu oluşturmaktır. C# uygulamanız ardından bu şablonu yükleyebilir ve veritabanı, API veya başka bir kaynaktan gelen verilerle yer tutucuları değiştirebilir.

Adım 1: Bir PowerPoint Şablonu Oluşturun

İlk olarak, ReportTemplate.pptx adlı bir PowerPoint dosyası oluşturun. Bir slaytta, {{ClientName}}, {{ReportDate}} ve {{TotalSales}} gibi benzersiz yer tutucu dizelere sahip metin kutuları ekleyin.

Adım 2: Şablonu C# Dilinde Doldurma

Aşağıdaki kod, bu şablonu nasıl yükleyeceğinizi, bazı verileri tanımlayacağınızı ve ardından slayttaki şekiller arasında gezinerek metni değiştireceğinizi gösterir.

using IronPPT;
using System.Collections.Generic;

// --- Sample Data ---
var reportData = new Dictionary<string, string>
{
    { "{{ClientName}}", "Global Tech Inc." },
    { "{{ReportDate}}", System.DateTime.Now.ToShortDateString() },
    { "{{TotalSales}}", "$1,250,000" },
    { "{{PreparedBy}}", "Automated Reporting System" }
};

// Load the presentation template
var presentation = new PresentationDocument("ReportTemplate.pptx");
Slide reportSlide = presentation.Slides;

// Iterate through all shapes on the slide to find and replace text
foreach (var shape in reportSlide.Shapes)
{
    // Iterate through all paragraphs within the shape
    foreach (var paragraph in shape.Paragraphs)
    {
        // Iterate through all text runs in the paragraph
        foreach (var textRun in paragraph.Texts)
        {
            foreach (var kvp in reportData)
            {
                if (textRun.Value.Contains(kvp.Key))
                - textRun.ReplaceText(kvp.Key, kvp.Value);
            }
        }
    }
}

// Save the generated report
presentation.Save("GeneratedClientReport.pptx");
using IronPPT;
using System.Collections.Generic;

// --- Sample Data ---
var reportData = new Dictionary<string, string>
{
    { "{{ClientName}}", "Global Tech Inc." },
    { "{{ReportDate}}", System.DateTime.Now.ToShortDateString() },
    { "{{TotalSales}}", "$1,250,000" },
    { "{{PreparedBy}}", "Automated Reporting System" }
};

// Load the presentation template
var presentation = new PresentationDocument("ReportTemplate.pptx");
Slide reportSlide = presentation.Slides;

// Iterate through all shapes on the slide to find and replace text
foreach (var shape in reportSlide.Shapes)
{
    // Iterate through all paragraphs within the shape
    foreach (var paragraph in shape.Paragraphs)
    {
        // Iterate through all text runs in the paragraph
        foreach (var textRun in paragraph.Texts)
        {
            foreach (var kvp in reportData)
            {
                if (textRun.Value.Contains(kvp.Key))
                - textRun.ReplaceText(kvp.Key, kvp.Value);
            }
        }
    }
}

// Save the generated report
presentation.Save("GeneratedClientReport.pptx");
Imports System
Imports IronPPT
Imports System.Collections.Generic

' --- Sample Data ---
Private reportData = New Dictionary(Of String, String) From {
	{"{{ClientName}}", "Global Tech Inc."},
	{"{{ReportDate}}", DateTime.Now.ToShortDateString()},
	{"{{TotalSales}}", "$1,250,000"},
	{"{{PreparedBy}}", "Automated Reporting System"}
}

' Load the presentation template
Private presentation = New PresentationDocument("ReportTemplate.pptx")
Private reportSlide As Slide = presentation.Slides

' Iterate through all shapes on the slide to find and replace text
For Each shape In reportSlide.Shapes
	' Iterate through all paragraphs within the shape
	For Each paragraph In shape.Paragraphs
		' Iterate through all text runs in the paragraph
		For Each textRun In paragraph.Texts
			For Each kvp In reportData
				If textRun.Value.Contains(kvp.Key) Then
				- textRun.ReplaceText(kvp.Key, kvp.Value)
				End If
			Next kvp
		Next textRun
	Next paragraph
Next shape

' Save the generated report
presentation.Save("GeneratedClientReport.pptx")
$vbLabelText   $csharpLabel

Bu şablon tabanlı yaklaşım son derece güçlüdür. Tasarımı veri çıkışından ayırır ve tasarımcıların şablonun görünümünü ve hissini PowerPoint'te, herhangi bir kod değişikliği gerektirmeden değiştirmesine olanak tanır.

Veri Kolleksiyonlarından Tablolar Üretme

Çoğu iş raporu için tablosal verileri göstermek temel bir gereksinimdir. IronPPT, C# veri yapılarınızdan, örneğin List<t> gibi, doğrudan tablolar oluşturarak ve doldurarak programlı olarak size izin verir.

Diyelim ki basit bir Product sınıfımız ve bir ürün listemiz var. Aşağıdaki kod, bu verileri gösteren bir tablo içeren yeni bir slayt üretecektir.

// --- Sample Data Model and Collection ---
public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int StockLevel { get; set; }
}

var products = new List<Product>
{
    new Product { ID = 101, Name = "Quantum CPU", Price = 299.99m, StockLevel = 50 },
    new Product { ID = 205, Name = "Photon SSD", Price = 149.50m, StockLevel = 120 },
    new Product { ID = 310, Name = "Gravity GPU", Price = 799.00m, StockLevel = 25 }
};

// --- Table Generation ---
var presentation = new PresentationDocument();
var tableSlide = presentation.AddSlide();
tableSlide.AddText("Product Inventory Report", new Rectangle(50, 20, 860, 50))
   .DefaultTextStyle.SetFont("Arial", 32).SetBold(true);

// Add a table to the slide with 4 columns and (N+1) rows
Table productTable = tableSlide.AddTable(products.Count + 1, 4, new Rectangle(50, 100, 860, 300));

// --- Populate Header Row ---
productTable.Rows.Cells.TextBody.AddParagraph("Product ID");
productTable.Rows.Cells.TextBody.AddParagraph("Product Name");
productTable.Rows.Cells.TextBody.AddParagraph("Price");
productTable.Rows.Cells.TextBody.AddParagraph("Stock");

// Style the header row
foreach (var cell in productTable.Rows.Cells)
{
    cell.Fill.SetSolid(new Color("#4A5568")); // Dark Gray
    cell.TextBody.Paragraphs.DefaultTextStyle.SetColor(Color.White).SetBold(true);
    cell.TextBody.Paragraphs.Style.SetAlignment(TextAlignmentTypeValues.Center);
}

// --- Populate Data Rows ---
for (int i = 0; i < products.Count; i++)
{
    var product = products[i];
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.ID.ToString());
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.Name);
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.Price.ToString("C"));
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.StockLevel.ToString());
}

presentation.Save("ProductInventoryReport.pptx");
// --- Sample Data Model and Collection ---
public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int StockLevel { get; set; }
}

var products = new List<Product>
{
    new Product { ID = 101, Name = "Quantum CPU", Price = 299.99m, StockLevel = 50 },
    new Product { ID = 205, Name = "Photon SSD", Price = 149.50m, StockLevel = 120 },
    new Product { ID = 310, Name = "Gravity GPU", Price = 799.00m, StockLevel = 25 }
};

// --- Table Generation ---
var presentation = new PresentationDocument();
var tableSlide = presentation.AddSlide();
tableSlide.AddText("Product Inventory Report", new Rectangle(50, 20, 860, 50))
   .DefaultTextStyle.SetFont("Arial", 32).SetBold(true);

// Add a table to the slide with 4 columns and (N+1) rows
Table productTable = tableSlide.AddTable(products.Count + 1, 4, new Rectangle(50, 100, 860, 300));

// --- Populate Header Row ---
productTable.Rows.Cells.TextBody.AddParagraph("Product ID");
productTable.Rows.Cells.TextBody.AddParagraph("Product Name");
productTable.Rows.Cells.TextBody.AddParagraph("Price");
productTable.Rows.Cells.TextBody.AddParagraph("Stock");

// Style the header row
foreach (var cell in productTable.Rows.Cells)
{
    cell.Fill.SetSolid(new Color("#4A5568")); // Dark Gray
    cell.TextBody.Paragraphs.DefaultTextStyle.SetColor(Color.White).SetBold(true);
    cell.TextBody.Paragraphs.Style.SetAlignment(TextAlignmentTypeValues.Center);
}

// --- Populate Data Rows ---
for (int i = 0; i < products.Count; i++)
{
    var product = products[i];
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.ID.ToString());
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.Name);
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.Price.ToString("C"));
    productTable.Rows[i + 1].Cells.TextBody.AddParagraph(product.StockLevel.ToString());
}

presentation.Save("ProductInventoryReport.pptx");
' --- Sample Data Model and Collection ---
Public Class Product
	Public Property ID() As Integer
	Public Property Name() As String
	Public Property Price() As Decimal
	Public Property StockLevel() As Integer
End Class

Private products = New List(Of Product) From {
	New Product With {
		.ID = 101,
		.Name = "Quantum CPU",
		.Price = 299.99D,
		.StockLevel = 50
	},
	New Product With {
		.ID = 205,
		.Name = "Photon SSD",
		.Price = 149.50D,
		.StockLevel = 120
	},
	New Product With {
		.ID = 310,
		.Name = "Gravity GPU",
		.Price = 799.00D,
		.StockLevel = 25
	}
}

' --- Table Generation ---
Private presentation = New PresentationDocument()
Private tableSlide = presentation.AddSlide()
tableSlide.AddText("Product Inventory Report", New Rectangle(50, 20, 860, 50)).DefaultTextStyle.SetFont("Arial", 32).SetBold(True)

' Add a table to the slide with 4 columns and (N+1) rows
Dim productTable As Table = tableSlide.AddTable(products.Count + 1, 4, New Rectangle(50, 100, 860, 300))

' --- Populate Header Row ---
productTable.Rows.Cells.TextBody.AddParagraph("Product ID")
productTable.Rows.Cells.TextBody.AddParagraph("Product Name")
productTable.Rows.Cells.TextBody.AddParagraph("Price")
productTable.Rows.Cells.TextBody.AddParagraph("Stock")

' Style the header row
For Each cell In productTable.Rows.Cells
	cell.Fill.SetSolid(New Color("#4A5568")) ' Dark Gray
	cell.TextBody.Paragraphs.DefaultTextStyle.SetColor(Color.White).SetBold(True)
	cell.TextBody.Paragraphs.Style.SetAlignment(TextAlignmentTypeValues.Center)
Next cell

' --- Populate Data Rows ---
For i As Integer = 0 To products.Count - 1
	Dim product = products(i)
	productTable.Rows(i + 1).Cells.TextBody.AddParagraph(product.ID.ToString())
	productTable.Rows(i + 1).Cells.TextBody.AddParagraph(product.Name)
	productTable.Rows(i + 1).Cells.TextBody.AddParagraph(product.Price.ToString("C"))
	productTable.Rows(i + 1).Cells.TextBody.AddParagraph(product.StockLevel.ToString())
Next i

presentation.Save("ProductInventoryReport.pptx")
$vbLabelText   $csharpLabel

Verileri Görselleştirmek İçin Grafikler Ekleme

Verileri daha sindirilebilir hale getirmek için grafikler esastır. IronPPT, verilerinizi etkili bir şekilde görselleştirmenizi sağlayan çeşitli grafik türleri eklemeyi ve doldurmayı destekler.

Bu örnek, ürün listemizdeki stok seviyelerini görselleştirmek için bir çubuk grafik oluşturur.

using IronPPT.Charts;
using IronPPT.Enums;

// --- Chart Generation ---
var presentation = new PresentationDocument();
var chartSlide = presentation.AddSlide();
chartSlide.AddText("Product Stock Levels", new Rectangle(50, 20, 860, 50))
   .DefaultTextStyle.SetFont("Arial", 32).SetBold(true);

// Add a bar chart to the slide
Chart stockChart = chartSlide.AddChart(ChartType.Bar, new Rectangle(100, 100, 750, 450));
stockChart.Title.Text = "Current Inventory";

// Get the chart data object to populate it
ChartData chartData = stockChart.ChartData;
chartData.Categories.Clear(); // Clear default categories
chartData.Series.Clear();     // Clear default series

// Add a series for our stock data
var series = chartData.Series.Add("Stock Level");

// Populate categories (product names) and data points (stock levels)
foreach (var product in products)
{
    chartData.Categories.Add(product.Name);
    series.DataPoints.Add(product.StockLevel);
}

presentation.Save("ProductStockChart.pptx");
using IronPPT.Charts;
using IronPPT.Enums;

// --- Chart Generation ---
var presentation = new PresentationDocument();
var chartSlide = presentation.AddSlide();
chartSlide.AddText("Product Stock Levels", new Rectangle(50, 20, 860, 50))
   .DefaultTextStyle.SetFont("Arial", 32).SetBold(true);

// Add a bar chart to the slide
Chart stockChart = chartSlide.AddChart(ChartType.Bar, new Rectangle(100, 100, 750, 450));
stockChart.Title.Text = "Current Inventory";

// Get the chart data object to populate it
ChartData chartData = stockChart.ChartData;
chartData.Categories.Clear(); // Clear default categories
chartData.Series.Clear();     // Clear default series

// Add a series for our stock data
var series = chartData.Series.Add("Stock Level");

// Populate categories (product names) and data points (stock levels)
foreach (var product in products)
{
    chartData.Categories.Add(product.Name);
    series.DataPoints.Add(product.StockLevel);
}

presentation.Save("ProductStockChart.pptx");
Imports IronPPT.Charts
Imports IronPPT.Enums

' --- Chart Generation ---
Private presentation = New PresentationDocument()
Private chartSlide = presentation.AddSlide()
chartSlide.AddText("Product Stock Levels", New Rectangle(50, 20, 860, 50)).DefaultTextStyle.SetFont("Arial", 32).SetBold(True)

' Add a bar chart to the slide
Dim stockChart As Chart = chartSlide.AddChart(ChartType.Bar, New Rectangle(100, 100, 750, 450))
stockChart.Title.Text = "Current Inventory"

' Get the chart data object to populate it
Dim chartData As ChartData = stockChart.ChartData
chartData.Categories.Clear() ' Clear default categories
chartData.Series.Clear() ' Clear default series

' Add a series for our stock data
Dim series = chartData.Series.Add("Stock Level")

' Populate categories (product names) and data points (stock levels)
For Each product In products
	chartData.Categories.Add(product.Name)
	series.DataPoints.Add(product.StockLevel)
Next product

presentation.Save("ProductStockChart.pptx")
$vbLabelText   $csharpLabel

Bu kod, verilerinizin açık ve profesyonel bir görsel gösterimini, manuel müdahale olmadan ikna edici bir çubuk grafik oluşturarak sağlar.

Neden Office Interop Yerine Özel Bir Kütüphane Seçmelisiniz?

PowerPoint programlı oluşturmayı düşünen geliştiriciler için, seçim genellikle Microsoft Office Interop kullanmak ya da IronPPT gibi özel üçüncü taraf kütüphane kullanmak arasında kalır. Office lisansınız varsa Interop "ücretsizdir", ancak modern, sunucu tarafı uygulamaların talepleri için tasarlanmamıştır. Aşağıdaki tablo, temel farkları özetler.

Özellik / Dikkat Edilecekler IronPPT for .NET Microsoft.Office.Interop.PowerPoint
Sunucu Tarafı Bağımlılık Hiçbir şey yoktur. Tamamen yönetilen .NET kütüphanesi. Sunucuda Microsoft Office kurulumunu gerektirir.
Performans & Ölçeklenebilirlik Çok iş parçacıklı, yüksek performans kullanımı için optimize edilmiş. Sunucu tarafında kullanım için tasarlanmamış; yavaş ve kararsız olabilir.
Dağıtım Karmaşıklığı Basit NuGet paketi kurulumu. Karmaşık COM bağımlılıkları, izinler ve Office lisanslama.
Platform Desteği Windows, Linux, macOS, Docker, Azure, AWS. Sadece Windows. Modern çapraz platform dağıtımları için uygun değil.
API Tasarımı & Kullanım Kolaylığı Geliştiriciler için tasarlanmış modern, sezgisel ve akıcı API. Eski, ayrıntılı ve karmaşık COM tabanlı API.
Kararlılık Gözetimsiz yürütme için kararlı ve güvenilir. Sunucu ortamlarında asılı kalan işlemler ve bellek sızıntılarına eğilimli.

IronPPT gibi özel bir kütüphane seçmek, daha hızlı geliştirme, daha büyük kararlılık, daha düşük bakım yükü ve herhangi bir platformda dağıtım esnekliği anlamına gelir. Bu, teknik borç ve Interop sınırlarını aşan sağlam, modern bir mimariye yapılan bir yatırımdır. IronPPT gibi özel bir kütüphane seçmek, daha hızlı geliştirme, daha fazla kararlılık, daha düşük bakım yükü ve her platformda dağıtım esnekliğine işaret eder. Bu, Interop'un teknik borçlarından ve sınırlamalarından kaçınan sağlam, modern bir mimariye bir yatırımdır.

Kurumsal PowerPoint Otomasyonu için En İyi Uygulamalar

Üretim seviyesinde uygulamalar oluştururken, en iyi uygulamaları takip etmek, kodunuzun verimli, sürdürülebilir ve dirençli olmasını sağlar.

  1. Büyük Sunumlar İçin Performansı Optimize Edin: Birçok slayt veya büyük resim içeren sunumlar için bellek kullanımına dikkat edin. Mümkün olduğunda akışlardan resim yükleyin ve her öğe için yeni örnekler oluşturmak yerine, TextStyle veya ParagraphStyle gibi nesneleri yeniden kullanın.
  2. Tutarlı Bir Tasarımı Koruyun: Tasarım tutarlılığını sağlamak için şablonlardan ve yardımcı yöntemlerden yararlanın. Başlıklar, metin gövdesi ve altyazılar için önceden yapılandırılmış TextStyle ve ParagraphStyle nesneleri döndüren yöntemler içeren statik bir sınıf oluşturun. Bu, marka tutarlılığı sağlar ve küresel stil değişikliklerini önemsiz hale getirir.
  3. Hataları ve İstisnaları Nazikçe Yönetin: Dosya G/Ç ve harici bağımlılıklar başarısız olabilir. Olası FileNotFoundException veya erişim izin hataları gibi istisnaları ele almak için sunum oluşturma mantığınızı her zaman try-catch bloklarına sarın.

Dosyayı kaydederken sağlam hata yönetiminin basit bir örneği burada:

try
{
    // All presentation creation logic here...
    var presentation = new PresentationDocument();
    presentation.AddSlide().AddText("Final Report");

    // Attempt to save the presentation
    presentation.Save("C:\\ProtectedFolder\\FinalReport.pptx");
}
catch (System.IO.IOException ex)
{
    // Log the specific I/O error
    Console.WriteLine($"Error saving file: {ex.Message}");
    // Potentially try saving to a fallback location
}
catch (System.UnauthorizedAccessException ex)
{
    // Log the permission error
    Console.WriteLine($"Permission denied. Cannot save file. {ex.Message}");
}
catch (Exception ex)
{
    // Catch any other unexpected errors
    Console.WriteLine($"An unexpected error occurred: {ex.Message}");
}
try
{
    // All presentation creation logic here...
    var presentation = new PresentationDocument();
    presentation.AddSlide().AddText("Final Report");

    // Attempt to save the presentation
    presentation.Save("C:\\ProtectedFolder\\FinalReport.pptx");
}
catch (System.IO.IOException ex)
{
    // Log the specific I/O error
    Console.WriteLine($"Error saving file: {ex.Message}");
    // Potentially try saving to a fallback location
}
catch (System.UnauthorizedAccessException ex)
{
    // Log the permission error
    Console.WriteLine($"Permission denied. Cannot save file. {ex.Message}");
}
catch (Exception ex)
{
    // Catch any other unexpected errors
    Console.WriteLine($"An unexpected error occurred: {ex.Message}");
}
Try
	' All presentation creation logic here...
	Dim presentation = New PresentationDocument()
	presentation.AddSlide().AddText("Final Report")

	' Attempt to save the presentation
	presentation.Save("C:\ProtectedFolder\FinalReport.pptx")
Catch ex As System.IO.IOException
	' Log the specific I/O error
	Console.WriteLine($"Error saving file: {ex.Message}")
	' Potentially try saving to a fallback location
Catch ex As System.UnauthorizedAccessException
	' Log the permission error
	Console.WriteLine($"Permission denied. Cannot save file. {ex.Message}")
Catch ex As Exception
	' Catch any other unexpected errors
	Console.WriteLine($"An unexpected error occurred: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Sonuç ve Sonraki Adımlarınız

C#'da PowerPoint sunumu oluşturmayı otomatikleştirmek, verimlilikte önemli bir artış sağlar ve güçlü yeni uygulama özelliklerini etkinleştirir. Gördüğümüz gibi, IronPPT for .NET geleneksel Office Interop yöntemlerinin yeteneklerini ve kararlılığını çok aşan sezgisel, modern ve çapraz platform bir çözüm sağlar. Basit slaytlar oluşturmak veya tablolar ve grafiklerle karmaşık, veri odaklı raporlar hazırlamak olsun, IronPPT işi verimli bir şekilde tamamlamak için sizi gerekli araçlarla donatır.

Projeleriniz ayrıca diğer belge formatlarıyla çalışmayı içeriyorsa, tüm Iron Suitei keşfetmeyi düşünün. PDF düzenleme için IronPDF, Excel tabloları için IronXL ve barkod okuma için IronBarcode gibi kütüphanelerle, tüm belge işlem ihtiyaçlarınızı tutarlı, yüksek kaliteli bir araç setiyle karşılayabilirsiniz.

Otomasyona başlamaya hazır mısınız? IronPPT'nin tüm gücünü deneyimlemenin en iyi yolu, onu kendi projenizde denemektir.

Şimdi IronPPT ile başlayın.
green arrow pointer

Daha ayrıntılı bilgi için resmi IronPPT belgelerine göz atabilir veya API Referansında sınıflar ve yöntemler hakkında derinlemesine bilgi edinebilirsiniz.

Lütfen dikkate alınAspose kendi sahibinin tescilli markasıdır. Bu site, Aspose ile ilişkili, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Sıkça Sorulan Sorular

PowerPoint sunumlarını C# ile nasıl otomatikleştirebilirim?

.NET için IronPPT kullanarak PowerPoint sunumlarını otomatikleştirebilirsiniz. Bu kütüphane, Microsoft Office Interop'a güvenmeden slaytları programatik olarak oluşturmanıza, düzenlemenize ve manipüle etmenize izin verir.

PowerPoint otomasyonu için Microsoft Office Interop'a kıyasla bir .NET kütüphanesi kullanmanın avantajları nelerdir?

IronPPT gibi bir .NET kütüphanesi kullanmak, kararlılık, çapraz platform uyumluluğu ve lisanslı bir Microsoft Office kurulumuna ihtiyaç duymaksızın sunucu ve konteyner ortamları için ideal hale getirir.

C# kullanarak bir PowerPoint sunumuna yeni bir slayt nasıl eklerim?

IronPPT ile new PresentationDocument() ile sunum başlattıktan sonra AddSlide() methodunu kullanarak yeni bir slayt ekleyebilirsiniz.

PowerPoint sunumunda mevcut slaytları programatik olarak kopyalayabilir miyim?

Evet, IronPPT, Slides koleksiyonuna erişerek ve slayt içeriğini verimli bir şekilde çoğaltmak için yöntemler kullanarak slaytları kopyalamanıza izin verir.

C# kullanarak PowerPoint slaytlarına nasıl stil verilmiş metin ekleyebilirim?

IronPPT, stil seçenekleriyle AddText() ve metni slaytlarda eklemenize ve biçimlendirmenize olanak tanıyan SetFont() ve SetColor() gibi metin ekleme ve biçimlendirme seçenekleri sunar.

C# kullanarak bir PowerPoint slaytına resim nasıl eklerim?

Bir new Image() kullanarak bir resim yükleyebilir, ardından slide.AddImage() ile slayta ekleyebilir, pozisyonunu ve boyutunu programatik olarak ayarlayabilirsiniz.

Veriye dayalı PowerPoint sunumlarını oluşturmak için şablonları nasıl kullanırım?

Yer tutucular içeren şablonları yüklemeyi destekleyen IronPPT, dinamik verilerle yer değiştirmek için ReplaceText() gibi yöntemler kullanarak raporlar oluşturmaya olanak tanır.

C# ile PowerPoint otomasyonunda hata yönetimi için en iyi uygulamalar nelerdir?

Automation kodunuzu, IOException ve UnauthorizedAccessException gibi istisnaları ele almak için try-catch bloklarıyla kapsayın. Hataları kaydetmek, hata ayıklamada ve güçlü otomasyon sağlamada yardımcı olabilir.

C# koleksiyonlarından veri kullanarak PowerPoint slaytlarında nasıl tablo oluşturabilirim?

IronPPT'nin AddTable() yöntemini kullanarak tablolar oluşturun, ardından C# koleksiyonlarından verilerle doldurun ve her hücrenin görünümünü TextBody.Paragraphs.DefaultTextStyle ile özelleştirin.

IronPPT, çapraz platform PowerPoint otomasyon çözümleri geliştirmek için uygun mu?

Evet, IronPPT, Windows, Linux ve macOS dahil olmak üzere çeşitli platformlarda çalışır ve Docker konteynerlerinde dağıtımı destekler, bu da çapraz platform uygulamaları için idealdir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara