透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
.NET アプリケーションを構築して PowerPoint プレゼンテーション ファイルを操作する際には、開発者は通常、2 つのアプローチのいずれかを選びます: 従来の IronPPT のような最新の .NET ライブラリ。
PowerPointスライドの操作を可能にするという点では両方のオプションが提供されていますが、使いやすさ、性能、スケーラビリティの違いは非常に大きいです。サーバーにMicrosoft Officeをセットアップするのに苦労したことがある場合や、デプロイ中に難解なCOMエラーに悩まされたことがある場合、IronPPTが提供する利点をお楽しみいただけます。
このガイドでは、2つのアプローチを詳細に比較し、実際の使用例を示し、IronPPT がどのようにしてインターオップが提供するすべてを苦労なしで提供するかを示します。
Pixabay から追加アップロード
またはここに画像をドラッグアンドドロップします
代替テキストをクリア
Microsoft Office Interop PowerPoint は、PowerPoint、Word、Excel などのOfficeアプリケーションとC#アプリケーションが相互作用するためのCOMベースのAPIセットであるMicrosoft Office Interopスイートの一部です。 それは、コードを介して操作し、バックグラウンドでPowerPointの見えないインスタンスを起動することによって機能します。
機能的ではあるものの、Interop には重大な制限があります:
より難しいエラーハンドリング: COM InterOpによってスローされるエラーは、多くの場合あいまいでデバッグが困難です。
これが、Interopがどれほど扱いにくくなるかの例です:
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
var app = new PowerPoint.Application();
var presentation = app.Presentations.Add(MsoTriState.msoTrue);
var slide = presentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutText);
slide.Shapes[1].TextFrame.TextRange.Text = "Hello from Interop!";
presentation.SaveAs(@"C:\TestInterop.pptx");
presentation.Close();
app.Quit();
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
var app = new PowerPoint.Application();
var presentation = app.Presentations.Add(MsoTriState.msoTrue);
var slide = presentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutText);
slide.Shapes[1].TextFrame.TextRange.Text = "Hello from Interop!";
presentation.SaveAs(@"C:\TestInterop.pptx");
presentation.Close();
app.Quit();
Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
Private app = New PowerPoint.Application()
Private presentation = app.Presentations.Add(MsoTriState.msoTrue)
Private slide = presentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutText)
Private slide.Shapes(1).TextFrame.TextRange.Text = "Hello from Interop!"
presentation.SaveAs("C:\TestInterop.pptx")
presentation.Close()
app.Quit()
紙の上では問題ないように思えます。しかし、本番環境ではPowerPointがインストールされていることを確認し、Officeライセンスを扱い、リソースを手動で管理し、ヘッドレス環境で何も障害が起きないことを祈る必要があります。
IronPPT は、Microsoft Officeを必要とせずにPowerPointファイルを作成、読み取り、編集、変換できる強力な.NETライブラリです。目立つレポートを作成したい場合、コードを書いてプレゼンテーションの自動作成を行いたい場合、あるいはMicrosoft PowerPointをインストールせずにPowerPointプレゼンテーションを作成するためのツールが欲しい場合でも、IronPPTがサポートします。
これは、次のような機能を必要とする開発者向けに特別に設計されています:
軽量で高速なPowerPoint処理
はい、OfficeやPowerPointをインストールする必要はまったくありません。 IronPPTは100%スタンドアロンです。
IronPPTは、次の行を実行してNuGetパッケージマネージャーコンソール経由でC#プロジェクトに追加できます。
Install-Package IronPPT
Install-Package IronPPT
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPPT
今日のデモンストレーションでは、Visual Studioで新しいプロジェクトを作成します。 あなたも自分用に作成して、ぜひ一緒に進めてください! Visual Studioで新しいプロジェクトを作成し、コンソールアプリケーションを選択して開始します。
Pixabay から追加アップロード
またはここに画像をドラッグアンドドロップします
代替テキストをクリア
IronPPTを使用することで、あなたのアプリは完全に独立します。 Azure、AWS Lambda、Dockerコンテナ、Linuxサーバーなど、Microsoft Officeをインストールまたはライセンスすることなく、あらゆる環境にデプロイできます。
IronPPTを使用すると、新しいプレゼンテーションファイルを数行のコードで作成し、簡単に空白のプレゼンテーションに新しいテキストを追加できます。 IronPPTで新しいファイルを作成すると、最初に1枚のスライドが用意され、ニーズに合わせて編集する準備が整います。 もっとスライドを追加したいですか? AddSlide メソッドを使用すると、必要なスライドを数行のコードでプレゼンテーションに追加できます。
using IronPPT;
using IronPPT.Models;
var document = new PresentationDocument();
document.Slides[0].TextBoxes[0].AddText("Hello, World!");
document.Slides[0].TextBoxes[1].AddText("Welcome to IronPPT!");
document.Save("presentation.pptx");
using IronPPT;
using IronPPT.Models;
var document = new PresentationDocument();
document.Slides[0].TextBoxes[0].AddText("Hello, World!");
document.Slides[0].TextBoxes[1].AddText("Welcome to IronPPT!");
document.Save("presentation.pptx");
Imports IronPPT
Imports IronPPT.Models
Private document = New PresentationDocument()
document.Slides(0).TextBoxes(0).AddText("Hello, World!")
document.Slides(0).TextBoxes(1).AddText("Welcome to IronPPT!")
document.Save("presentation.pptx")
出力
Pixabay から追加アップロード
またはここに画像をドラッグアンドドロップします
代替テキストをクリア
それを冗長でエラーを起こしやすいインターオペアプローチと比較してください。 IronPPTは清潔で、読みやすく、製品化する準備ができています。
プレゼンテーションの視覚的に魅力的な要素を作成したいですか? IronPPTは、スライドへの画像の追加をサポートしており、プレゼンテーションの最終的な外観を完全にコントロールすることができます。
using IronPPT;
using IronPPT.Models;
using IronPPT.Enums;
using IronPPT.Models.Styles;
var document = new PresentationDocument("presentation.pptx");
Slide slide = new Slide();
// Add a rectangle shape
Shape shape = new Shape();
shape.Type = ShapeType.Rectangle;
shape.FillColor = Color.LightBlue;
shape.OutlineColor = Color.Black;
shape.Width = 200;
shape.Height = 100;
shape.Position = (200, 50);
slide.AddShape(shape);
// Add an Image
Image image = new Image();
image.LoadFromFile("IronPPT.png");
var img = slide.AddImage(image);
img.Position = (100, 200);
img.Width = 400;
img.Height = 200;
document.AddSlide(slide);
document.Save("presentation.pptx");
using IronPPT;
using IronPPT.Models;
using IronPPT.Enums;
using IronPPT.Models.Styles;
var document = new PresentationDocument("presentation.pptx");
Slide slide = new Slide();
// Add a rectangle shape
Shape shape = new Shape();
shape.Type = ShapeType.Rectangle;
shape.FillColor = Color.LightBlue;
shape.OutlineColor = Color.Black;
shape.Width = 200;
shape.Height = 100;
shape.Position = (200, 50);
slide.AddShape(shape);
// Add an Image
Image image = new Image();
image.LoadFromFile("IronPPT.png");
var img = slide.AddImage(image);
img.Position = (100, 200);
img.Width = 400;
img.Height = 200;
document.AddSlide(slide);
document.Save("presentation.pptx");
Imports IronPPT
Imports IronPPT.Models
Imports IronPPT.Enums
Imports IronPPT.Models.Styles
Private document = New PresentationDocument("presentation.pptx")
Private slide As New Slide()
' Add a rectangle shape
Private shape As New Shape()
shape.Type = ShapeType.Rectangle
shape.FillColor = Color.LightBlue
shape.OutlineColor = Color.Black
shape.Width = 200
shape.Height = 100
shape.Position = (200, 50)
slide.AddShape(shape)
' Add an Image
Dim image As New Image()
image.LoadFromFile("IronPPT.png")
Dim img = slide.AddImage(image)
img.Position = (100, 200)
img.Width = 400
img.Height = 200
document.AddSlide(slide)
document.Save("presentation.pptx")
出力
Pixabay から追加アップロード
またはここに画像をドラッグアンドドロップします
代替テキストをクリア
プレゼンテーションのテーマについて情報と詳細を提供すると同時に、視覚的に魅力的な要素としても機能するテキストにしたいですか? プレゼンテーションファイルに、IronPPTを使用してスタイル付きの段落を追加することで、スライドショーの視聴者をしっかり引き付けましょう。
using IronPPT;
using IronPPT.Models;
using IronPPT.Enums;
using IronPPT.Models.Styles;
var document = new PresentationDocument();
Slide slide = new Slide();
var style = new ParagraphStyle()
{
NoBullet = true,
RightToLeft = true,
Indent = 10.00,
Alignment = TextAlignmentTypeValues.Center,
};
var paragraph = new Paragraph();
paragraph.Style = style;
paragraph.AddText("This is a sample paragraph with custom styles applied.");
document.AddSlide(slide);
slide.AddParagraph(paragraph);
document.Save("presentation.pptx");
using IronPPT;
using IronPPT.Models;
using IronPPT.Enums;
using IronPPT.Models.Styles;
var document = new PresentationDocument();
Slide slide = new Slide();
var style = new ParagraphStyle()
{
NoBullet = true,
RightToLeft = true,
Indent = 10.00,
Alignment = TextAlignmentTypeValues.Center,
};
var paragraph = new Paragraph();
paragraph.Style = style;
paragraph.AddText("This is a sample paragraph with custom styles applied.");
document.AddSlide(slide);
slide.AddParagraph(paragraph);
document.Save("presentation.pptx");
Imports IronPPT
Imports IronPPT.Models
Imports IronPPT.Enums
Imports IronPPT.Models.Styles
Private document = New PresentationDocument()
Private slide As New Slide()
Private style = New ParagraphStyle() With {
.NoBullet = True,
.RightToLeft = True,
.Indent = 10.00,
.Alignment = TextAlignmentTypeValues.Center
}
Private paragraph = New Paragraph()
paragraph.Style = style
paragraph.AddText("This is a sample paragraph with custom styles applied.")
document.AddSlide(slide)
slide.AddParagraph(paragraph)
document.Save("presentation.pptx")
出力
Pixabay から追加アップロード
またはここに画像をドラッグアンドドロップします
代替テキストをクリア
Microsoft PowerPointがインストールされていない場合、アプリがクラッシュします。
using Microsoft.Office.Interop.PowerPoint;
var app = new Application();
var presentation = app.Presentations.Open(@"C:\Slides\Deck.pptx");
using Microsoft.Office.Interop.PowerPoint;
var app = new Application();
var presentation = app.Presentations.Open(@"C:\Slides\Deck.pptx");
Imports Microsoft.Office.Interop.PowerPoint
Private app = New Application()
Private presentation = app.Presentations.Open("C:\Slides\Deck.pptx")
問題:
PowerPointがマシンにインストールされていない場合(クラウドサーバーやDockerコンテナのような環境)、通常、COMExceptionがスローされます。
Retrieving the COM class factory for component with CLSID failed due to the following error: 80040154 Class not registered.
Retrieving the COM class factory for component with CLSID failed due to the following error: 80040154 Class not registered.
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Retrieving the COM class factory for component @with CLSID failed due @to the following @error: 80040154 @Class @not registered.
インターオペレーションは単一スレッドアパートメント(STA)スレッド上で実行されなければならず、さもなければクラッシュします。
// This will crash if called from a background thread in a web app or service
var app = new Application();
// This will crash if called from a background thread in a web app or service
var app = new Application();
' This will crash if called from a background thread in a web app or service
Dim app = New Application()
✅ 回避策: 呼び出しを手動でSTAスレッドにラップする必要があります:
Thread thread = new Thread(() =>
{
var app = new Application();
var pres = app.Presentations.Add();
pres.Slides.Add(1, PpSlideLayout.ppLayoutText);
pres.SaveAs(@"C:\output.pptx");
app.Quit();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
Thread thread = new Thread(() =>
{
var app = new Application();
var pres = app.Presentations.Add();
pres.Slides.Add(1, PpSlideLayout.ppLayoutText);
pres.SaveAs(@"C:\output.pptx");
app.Quit();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
Dim thread As New Thread(Sub()
Dim app = New Application()
Dim pres = app.Presentations.Add()
pres.Slides.Add(1, PpSlideLayout.ppLayoutText)
pres.SaveAs("C:\output.pptx")
app.Quit()
End Sub)
thread.SetApartmentState(ApartmentState.STA)
thread.Start()
thread.Join()
❗これは不格好で脆弱です—特にASP.NETやバックグラウンドサービス内では。
COMオブジェクトを解放しないとメモリリークやアプリのクラッシュを引き起こします。
var app = new Application();
var presentation = app.Presentations.Open(@"C:\Slides\Deck.pptx");
presentation.Close();
app.Quit();
// Forgot to release COM objects!
var app = new Application();
var presentation = app.Presentations.Open(@"C:\Slides\Deck.pptx");
presentation.Close();
app.Quit();
// Forgot to release COM objects!
Dim app = New Application()
Dim presentation = app.Presentations.Open("C:\Slides\Deck.pptx")
presentation.Close()
app.Quit()
' Forgot to release COM objects!
シンプルなテキストスライドを追加するには、大量のボイラープレートが必要です。
var app = new Application();
var presentation = app.Presentations.Add(MsoTriState.msoTrue);
var slide = presentation.Slides.Add(1, PpSlideLayout.ppLayoutText);
slide.Shapes[1].TextFrame.TextRange.Text = "Hello from Interop!";
presentation.SaveAs(@"C:\test.pptx");
presentation.Close();
app.Quit();
var app = new Application();
var presentation = app.Presentations.Add(MsoTriState.msoTrue);
var slide = presentation.Slides.Add(1, PpSlideLayout.ppLayoutText);
slide.Shapes[1].TextFrame.TextRange.Text = "Hello from Interop!";
presentation.SaveAs(@"C:\test.pptx");
presentation.Close();
app.Quit();
Dim app = New Application()
Dim presentation = app.Presentations.Add(MsoTriState.msoTrue)
Dim slide = presentation.Slides.Add(1, PpSlideLayout.ppLayoutText)
slide.Shapes(1).TextFrame.TextRange.Text = "Hello from Interop!"
presentation.SaveAs("C:\test.pptx")
presentation.Close()
app.Quit()
それを、IronPPT のクリーンで管理された構文と比較してください。
using IronPPT;
using IronPPT.Models;
var document = new PresentationDocument();
document.Save("presentation.pptx");
using IronPPT;
using IronPPT.Models;
var document = new PresentationDocument();
document.Save("presentation.pptx");
Imports IronPPT
Imports IronPPT.Models
Private document = New PresentationDocument()
document.Save("presentation.pptx")
問題
Microsoft Interop
IronPPT
PowerPointのインストールが必要です
✅ はい
❌ No
STAスレッドが必要
✅ はい
❌ No
メモリリークを起こしやすい
✅ はい
❌ No
コードの冗長性
高い
低い
あなたのC#アプリケーションにPowerPoint自動化を組み込む際、IronPPTの選択は明確です。
この記事を通して、私たちはこれら2つのライブラリの基本的な違いを探りました。
IronPPTは、一方で、今日の開発環境向けに設計されています。 軽量で、Officeのインストールが不要であり、ウェブサーバーおよびCI/CDパイプラインでシームレスに動作し、使いやすく維持しやすいクリーンでモダンなAPIを提供します。
また、スレッド例外やCOMエラーからデプロイの問題まで、Interopの一般的な落とし穴を強調する実際のコード例を検討し、それをIronPPTのスムーズで直感的な構文と比較しました。
アプリケーションにおけるPowerPointスライドの作成、編集、エクスポートを簡素化することに本気で取り組むなら、従来のInteropを使用せずにIronPPTが明らかに優れています。
自分で違いを確認したいですか? 無料のIronPPTトライアルをダウンロードし、数行のC#コードでプロフェッショナル品質のPowerPointファイルを作成し始めましょう。Officeのインストールは不要です。
🚀 COMオブジェクトとの奮闘をやめましょう。 IronPPTを使用して、現代的で高速かつ信頼性の高い.NETソリューションの出荷を開始しましょう。