Charts
Bar, line, pie, doughnut, scatter, area and more — with full series styling and native PPTX rendering.
NetCorePpt is a pure C# library for creating PPTX files — a complete port of PptxGen.js. Build charts, tables, shapes, and rich slides entirely in code, with zero dependency on Microsoft Office.
using NetCorePpt;
var pres = new Presentation();
var slide = pres.AddSlide();
slide.AddText("Quarterly Revenue",
new { X = 1, Y = 0.5, W = 8, H = 1,
FontSize = 32, Bold = true });
slide.AddChart(ChartType.Bar, chartData,
new { X = 1, Y = 2, W = 8, H = 4.5 });
pres.WriteFile("report.pptx");
Every feature from PptxGen.js, reimagined as idiomatic .NET. Strongly typed, fully async, ready for servers and containers.
Bar, line, pie, doughnut, scatter, area and more — with full series styling and native PPTX rendering.
Styled tables with per-cell formatting, alignment, spans, and column-width control.
Multi-run text, fonts, colors, bullets, hyperlinks, and precise positioning in inches or cm.
Rectangles, lines, arrows, stars, plus images with cropping, rounding, and placeholders.
Define masters and layouts once; reuse across decks for consistent branding.
Files open cleanly in PowerPoint, Keynote, Google Slides, and LibreOffice. No render glitches.
No Office install, no COM, no Windows-only APIs. Runs on Linux, macOS, and Windows containers.
A real C# codebase — strongly typed, nullable-aware, with async APIs and clean XML docs.
The API mirrors PptxGen.js, so any JavaScript example you already know translates almost line-for-line into C#.
using NetCorePpt;
var pres = new Presentation();
var slide = pres.AddSlide();
slide.AddText("Hello from C#", new TextProps {
X = 1.0, Y = 1.0, W = 8.0, H = 1.5,
FontSize = 40, Bold = true,
Color = "6D28D9"
});
slide.AddImage("logo.png", new ImageProps {
X = 7.5, Y = 4.0, W = 1.5, H = 1.5
});
pres.WriteFile("hello.pptx");
var data = new ChartData {
Categories = new[] { "Q1", "Q2", "Q3", "Q4" },
Series = new[] {
new ChartSeries("2025", new[]{ 42, 55, 38, 61 }),
new ChartSeries("2026", new[]{ 48, 60, 44, 70 })
}
};
slide.AddChart(ChartType.Bar, data, new ChartProps {
X = 1.0, Y = 2.0, W = 8.0, H = 4.5,
BarDir = "col",
ShowValue = true,
PlotArea = new { Fill = "F1F5F9" }
});
var rows = new[] {
TableCell.Row("Product", "Units", "Revenue"),
TableCell.Row("Widget A", "1,240", "$31,000"),
TableCell.Row("Widget B", "980", "$24,500")
};
slide.AddTable(rows, new TableProps {
X = 1.0, Y = 2.0, W = 8.0,
HeaderFill = "6D28D9",
HeaderColor = "FFFFFF",
AltRowFill = "F8FAFC",
FontSize = 14,
Border = new { Type = "solid", Color = "E2E8F0" }
});
If you've ever wrestled with Office Interop on a server, you know the pain. NetCorePpt skips all of it — no Office install, no COM hell, no Windows lock-in.
Pay yearly. Region-detected price shown below. Cancel anytime — the library keeps working in your shipped products.
≈ ¥600 / year for visitors from China
30-day money-back guarantee
Yes. Every API surface from PptxGen.js — slides, text, charts, tables, shapes, images, media, masters, and layouts — has been rewritten as idiomatic C#. The behavior and PPTX output match the original.
No. NetCorePpt writes PPTX files directly. There is no dependency on Office, COM, or any native binary. It runs on Linux, macOS, and Windows.
With a Developer License, yes — ship NetCorePpt inside your commercial applications, SaaS, and internal tools with no per-deploy fees.
.NET 6, 7, and 8 (LTS recommended). The package targets net6.0 and net8.0, and works in .NET Framework 4.8 via the .NET Standard 2.0 surface.
The library keeps working in everything you've already shipped — you're not locked out. Renewing extends updates and support for another year.
Email support with a 1-business-day response target on weekdays. Bug reports are prioritized and typically patched within a release cycle.
Generate clean, compatible PPTX from pure C# — today.
Get a License