June 2026 Roadmap (v26.1)

Explore new features and capabilities we expect to introduce in our next release (v26.1) and share your thoughts with us in the feature discussion threads.

Roadmap

What's New

Explore the newest features shipped in the recent major update.

See What's New

AI-Powered Document Processing

Enhance your document processing workflows with the Artificial Intelligence (AI).

Blog Posts

Process Word, Excel, PDF, and PowerPoint Files

Generate reports, automate workflows, convert formats, and password-protect documents with ease — pure .NET code
that scales in any cloud environment with no per-server licensing costs or application installations.

Cross-Platform Support

Designed for C# and VB.NET — Runs on .NET 10, 9, 8, .NET Framework 4.6.2+.

Simple and Straightforward Licensing Terms

No runtime royalties, no deployment headaches, and no hidden server fees.

Per-developer License

Each developer can work on multiple machines (office, home, laptop) with a single license. No need to count web servers, domains, or app deployments.

No Deployment Restrictions

Scale freely. Our End User License Agreement does not impose unfair terms/conditions on the number of apps, sites, domains, or end-users.

Transparent Pricing

No hidden costs, forced bundles, multiple licensing tiers, or surprise fees – just a transparent and straightforward licensing model.

For terms/conditions that govern use of DevExpress intellectual property, including our Office & PDF File API,
please refer to our End User License Agreement.

PDF Document API

Create, modify, convert, and secure PDF files programmatically, with full structural control.

Key Features
Create and Edit PDFs

Generate, load, and modify PDF documents. Add pages, text, graphics, update docyument structure, and control document elements in code.

Merge & Split PDFs

Combine multiple PDF files into one or split a single PDF into multiple documents. Mix, insert, delete, and rotate PDF pages with ease.

Digital Signatures & Security

Protect your PDF documents with passwords, permissions, and digital signatures. Restrict copy/print operations or document modifications and maintain document integrity using cryptographic signatures.

Interactive Forms

Create and populate interactive PDF forms. Change field appearance, extract form data, or flatten forms for final distribution.

Search & Extraction

Locate text and graphics, extract and analyze document data with precise text-search and parsing capabilities.

Annotations

Manage PDF annotations and customize associate appearance in code. Create, respond to, and review comments. Redact and clear sensitive page content.

Create and Edit PDFs

Generate, load, and modify PDF documents. Add pages, text, graphics, update docyument structure, and control document elements in code.

Merge & Split PDFs

Combine multiple PDF files into one or split a single PDF into multiple documents. Mix, insert, delete, and rotate PDF pages with ease.

Digital Signatures & Security

Protect your PDF documents with passwords, permissions, and digital signatures. Restrict copy/print operations or document modifications and maintain document integrity using cryptographic signatures.

Interactive Forms

Create and populate interactive PDF forms. Change field appearance, extract form data, or flatten forms for final distribution.

Search & Extraction

Locate text and graphics, extract and analyze document data with precise text-search and parsing capabilities.

Annotations

Manage PDF annotations and customize associate appearance in code. Create, respond to, and review comments. Redact and clear sensitive page content.

  • C#
using DevExpress.Pdf;
using DevExpress.Drawing;
using System.Drawing;

// Create a PDF and add a new page with text and logo
using var pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.CreateEmptyDocument();
using (PdfGraphics graphics = pdfProcessor.CreateGraphicsWorldSystem()) {
    PdfPage page = pdfProcessor.AddNewPage(PdfPaperSize.A4);
    PdfRectangle pageSize = page.CropBox;

    string text = "DevExpress PDF Document API";
    using (var textBrush = new DXSolidBrush(Color.DarkOrange)) {
        DXFont font = new DXFont("Segoe UI", 20);
        SizeF textSize = graphics.MeasureString(text, font);
        float textX = (float)((pageSize.Width - textSize.Width) / 2);
        float textY = (float)((pageSize.Height - textSize.Height) / 2);
        graphics.DrawString(text, font, textBrush, new PointF(textX, textY));

        using (var imageStream = new MemoryStream(File.ReadAllBytes("DevExpress.png")))
        using (DXImage image = DXImage.FromStream(imageStream)) {
            float imageWidth = 200;
            float imageHeight = imageWidth * image.Height / image.Width;
            float imageX = (float)((pageSize.Width - imageWidth) / 2);
            float imageY = textY + textSize.Height + 20;
            graphics.DrawImage(
              image,
              new RectangleF(imageX, imageY, imageWidth, imageHeight));
        }
    }
    graphics.AddToPageForeground(page);
}
using var outputStream = new MemoryStream();
pdfProcessor.SaveDocument(outputStream);
                
Copy
  • C#
using DevExpress.Pdf;

// Merge multiple documents into one
using var pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.CreateEmptyDocument();

using var doc1 = new MemoryStream(File.ReadAllBytes("Document1.pdf"));
pdfProcessor.AppendDocument(doc1);
using var doc2 = new MemoryStream(File.ReadAllBytes("Document2.pdf"));
pdfProcessor.AppendDocument(doc2);

using var mergedStream = new MemoryStream();
pdfProcessor.SaveDocument(mergedStream);

// Extract pages to separate documents
using var targetPdfProcessor = new PdfDocumentProcessor();
targetPdfProcessor.CreateEmptyDocument();

targetPdfProcessor.Document.Pages.Add(pdfProcessor.Document.Pages[0]);
targetPdfProcessor.Document.Pages.Add(pdfProcessor.Document.Pages[1]);

using var splitStream = new MemoryStream();
targetPdfProcessor.SaveDocument(splitStream);
              
Copy
  • C#
using DevExpress.Pdf;

using var inputStream = new MemoryStream(File.ReadAllBytes("Document.pdf"));
using var pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.LoadDocument(documentStream);

// Set encryption options
PdfEncryptionOptions options = new PdfEncryptionOptions();
options.OwnerPasswordString = "OwnerPassword";
options.UserPasswordString = "UserPassword";
options.Algorithm = PdfEncryptionAlgorithm.AES256;
options.PrintingPermissions = PdfDocumentPrintingPermissions.Allowed;
options.DataExtractionPermissions = PdfDocumentDataExtractionPermissions.NotAllowed;
options.ModificationPermissions = PdfDocumentModificationPermissions.DocumentAssembling;

// Save a PDF with password protection and permissions
using var protectedStream = new MemoryStream();
pdfProcessor.SaveDocument(protectedStream, new PdfSaveOptions()
{
    EncryptionOptions = options
});
                
Copy
  • C#
using DevExpress.Pdf;

// Create a form
using var pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.CreateEmptyDocument();
pdfProcessor.AddNewPage(PdfPaperSize.A4);

PdfAcroFormTextBoxField textBox = new PdfAcroFormTextBoxField("FullName", 1,
    new PdfRectangle(50, 700, 150, 720));
textBox.Text = "Enter your name";
textBox.Appearance.FontSize = 12;

PdfAcroFormCheckBoxField checkBox = new PdfAcroFormCheckBoxField("Agreement", 1,
    new PdfRectangle(50, 660, 70, 680));
checkBox.IsChecked = true;
pdfProcessor.AddFormFields(textBox, checkBox);

// Save the form with fields
using var formFieldStream = new MemoryStream();
pdfProcessor.SaveDocument(formFieldStream);

// Fill and flatten the existing form
PdfDocumentFacade facade = pdfProcessor.DocumentFacade;
PdfAcroFormFacade acroForm = facade.AcroForm;

PdfTextFormFieldFacade nameField = acroForm.GetTextFormField("FullName");
nameField.Value = "John Smith";
pdfProcessor.FlattenForm();

// Save the filled and flattened form
using var flattenFormStream = new MemoryStream();
pdfProcessor.SaveDocument(flattenFormStream);
                
Copy
  • C#
using DevExpress.Pdf;

using var inputStream = new MemoryStream(File.ReadAllBytes("Document.pdf"));
using var pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.LoadDocument(inputStream);

// Search for specific text and redact it
string findText = "myemail@company.com";
PdfDocumentFacade documentFacade = pdfProcessor.DocumentFacade;
PdfTextSearchParameters searchParams = new PdfTextSearchParameters()
{
    CaseSensitive = true,
    WholeWords = true
};
PdfTextSearchResults results = pdfProcessor.FindText(findText, searchParams);
while (results.Status == PdfTextSearchStatus.Found)
{
    int pageIndex = results.Page.GetPageIndex();
    PdfPageFacade facadePage = documentFacade.Pages[pageIndex];
    var redactAnnotation = facadePage.AddRedactAnnotation(results.Rectangles);
    redactAnnotation.FillColor = new PdfRGBColor(0, 0, 0);

    results = pdfProcessor.FindText(findText, searchParams);
}

// Apply redactions to permanently remove content and save the document
documentFacade.ApplyRedactAnnotations();
using var redactedStream = new MemoryStream();
pdfProcessor.SaveDocument(redactedStream);
                
Copy
  • C#
using DevExpress.Pdf;

using var documentStream = new MemoryStream(File.ReadAllBytes("Document.pdf"));
using var processor = new PdfDocumentProcessor();
processor.LoadDocument(documentStream);

PdfDocumentFacade documentFacade = processor.DocumentFacade;
PdfPageFacade pageFacade = documentFacade.Pages[0];

// Add a text markup (highlight) annotation
PdfTextMarkupAnnotationFacade highlight = pageFacade.AddTextMarkupAnnotation(
    new PdfRectangle(50, 700, 300, 720), PdfTextMarkupAnnotationType.Highlight);
highlight.Color = new PdfRGBColor(1, 1, 0);
highlight.Author = "Reviewer";
highlight.Contents = "Important section";

// Add a sticky note annotation
PdfTextAnnotationFacade stickyNote = pageFacade.AddTextAnnotation(
    new PdfRectangle(320, 700, 340, 720));
stickyNote.Author = "Editor";
stickyNote.Contents = "Please review this paragraph.";
stickyNote.Color = new PdfRGBColor(1, 0.8, 0);

// Add a rubber stamp annotation
PdfRubberStampAnnotationFacade rubberStamp = pageFacade.AddRubberStampAnnotation(
    new PdfRectangle(50, 720, 100, 770), PdfRubberStampAnnotationIconName.Final);
rubberStamp.Author = "Approver";
rubberStamp.Contents = "Approved for release";

using var annotatedStream = new MemoryStream();
processor.SaveDocument(annotatedStream);
                
Copy
dotnet add package DevExpress.Document.ProcessorCopy

Spreadsheet API (XLS, XLSX, CSV)

Create and/or modify XLS/XLSx spreadsheets. Use formulas, add charts,
analyze information, and visualize business trends.

Key Features
Microsoft Excel® Compatibility

Create, open, and modify all major/current Microsoft Excel spreadsheet files. Manage formulas, format spreadsheet cells, construct tables, apply conditional formatting, and leverage many other spreadsheet features. Save results ensuring exceptional document fidelity.

XLS/XLSx Document Security

Protect sensitive data - built-in support for password encryption, workbook and worksheet protection, locked cell ranges, and digital signatures.

Accessibility & Compliance

Generate spreadsheets that meet accessibility standards and compliance requirements. Export spreadsheets to accessible and archive PDF formats.

Formula Calculation Engine

Powerful calculation engine with support for 400+ Excel functions including financial, statistical, and engineering categories. Evaluate workbooks, track dependencies, and implement custom functions with ease.

Charts & Data Visualization

Create, modify, and export Excel charts, pivot tables, data-bound tables, shapes, and other essential visual elements.

Export Capabilities

Export spreadsheets to PDF, HTML, CSV, text, or image formats while preserving layout, formatting, document elements, and calculated values.

Microsoft Excel® Compatibility

Create, open, and modify all major/current Microsoft Excel spreadsheet files. Manage formulas, format spreadsheet cells, construct tables, apply conditional formatting, and leverage many other spreadsheet features. Save results ensuring exceptional document fidelity.

XLS/XLSx Document Security

Protect sensitive data - built-in support for password encryption, workbook and worksheet protection, locked cell ranges, and digital signatures.

Accessibility & Compliance

Generate spreadsheets that meet accessibility standards and compliance requirements. Export spreadsheets to accessible and archive PDF formats.

Formula Calculation Engine

Powerful calculation engine with support for 400+ Excel functions including financial, statistical, and engineering categories. Evaluate workbooks, track dependencies, and implement custom functions with ease.

Charts & Data Visualization

Create, modify, and export Excel charts, pivot tables, data-bound tables, shapes, and other essential visual elements.

Export Capabilities

Export spreadsheets to PDF, HTML, CSV, text, or image formats while preserving layout, formatting, document elements, and calculated values.

  • C#
using DevExpress.Spreadsheet;
using System.Drawing;

// Generate Excel report from scratch
using var workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Sales Report";

// Set cell values and apply formatting.
worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Revenue";
worksheet["A2"].Value = "Widget A";
worksheet["B2"].Value = 15000;
worksheet["A3"].Value = "Widget B";
worksheet["B3"].Value = 23000;
worksheet["B2:B3"].NumberFormat = "$#,##0.00";

// Create a table from the data range
Table table = worksheet.Tables.Add(worksheet["A1:B3"], true);
table.Style = workbook.TableStyles[BuiltInTableStyleId.TableStyleLight9];
table.ShowTotals = true;

// Apply conditional formatting
ExpressionConditionalFormatting cfRule =
    worksheet.ConditionalFormattings.AddExpressionConditionalFormatting(
        worksheet["B2:B3"],
        ConditionalFormattingExpressionCondition.GreaterThan,
        "20000");
cfRule.Formatting.Fill.BackgroundColor = Color.LightGreen;

// Save in different Excel formats
using var xlsxStream = new MemoryStream();
workbook.SaveDocument(xlsxStream, DocumentFormat.Xlsx);
using var xlsStream = new MemoryStream();
workbook.SaveDocument(xlsStream, DocumentFormat.Xls);
Copy
  • C#
using DevExpress.Spreadsheet;

using var inputStream = new MemoryStream(File.ReadAllBytes("Template.xlsx"));
using var workbook = new Workbook();
workbook.LoadDocument(inputStream, DocumentFormat.Xlsx);
Worksheet worksheet = workbook.Worksheets[0];

// Protect the workbook structure with a password
if (!workbook.IsProtected)
    workbook.Protect("workbook_Password", true, true);

// Protect the worksheet from editing
if (!worksheet.IsProtected)
{
    worksheet.GetDataRange().Protection.Locked = true;
    worksheet.Protect("sheet_Password", WorksheetProtectionPermissions.Default);
}

// Encrypt the workbook with a password on save.
var encryptionSettings = new EncryptionSettings();
encryptionSettings.Type = EncryptionType.Strong;
encryptionSettings.Password = "encryption_Password";

using var outputStream = new MemoryStream();
workbook.SaveDocument(outputStream, DocumentFormat.Xlsx, encryptionSettings);
Copy
  • C#
using DevExpress.Spreadsheet;
using DevExpress.XtraPrinting;

using var inputStream = new MemoryStream(File.ReadAllBytes("Template.xlsx"));
using var workbook = new Workbook();
workbook.LoadDocument(inputStream, DocumentFormat.Xlsx);
Worksheet worksheet = workbook.Worksheets[0];

// Set picture properties for accessibility
foreach (Shape shape in worksheet.Shapes)
{
    if (shape.ShapeType == ShapeType.Picture)
    {
        shape.Decorative = false;
        shape.AlternativeText = "Picture description for screen readers.";
    }
}
using var outputStream = new MemoryStream();
workbook.SaveDocument(outputStream, DocumentFormat.Xlsx);

PdfExportOptions pdfOptions = new PdfExportOptions();
// Export as PDF/UA
pdfOptions.PdfUACompatibility = PdfUACompatibility.PdfUA1;
// Export as PDF/A-3a
pdfOptions.PdfACompatibility = PdfACompatibility.PdfA3a;

using var pdfStream = new MemoryStream();
workbook.ExportToPdf(pdfStream, pdfOptions);
Copy
  • C#
using DevExpress.Spreadsheet;

using var workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Sales Report";

// Import sales data and create a table with calculated columns
worksheet.Import(new object[,] {
        { "Sales Rep", "Revenue", "Target", "Comission" },
        { "Alice", 54200, 50000, 0 },
        { "Bob", 38750, 45000, 0 },
        { "Carol", 61300, 55000, 0 }
    }, 0, 0);
Table table = worksheet.Tables.Add(worksheet.GetDataRange(), true);
table.Columns[3].Formula = "=IF([Revenue]>=[Target], [Revenue]*0.08, [Revenue]*0.05)";

// Add summary formulas below the table
worksheet["A7"].Value = "Total Revenue";
worksheet["B7"].Formula = "=SUM(B2:B5)";
worksheet["A8"].Value = "Average Revenue";
worksheet["B8"].Formula = "=AVERAGE(B2:B5)";
worksheet["A9"].Value = "Top Performer";
worksheet["B9"].Formula = "=MAX(B2:B5)";

worksheet["B:D"].NumberFormat = "$#,##0.00";
worksheet["A:D"].AutoFitColumns();

// Evaluate all formulas and save the workbook
workbook.Calculate();
using var outputStream = new MemoryStream();
workbook.SaveDocument(outputStream, DocumentFormat.Xlsx);
Copy
  • C#
using DevExpress.Spreadsheet;
using DevExpress.Spreadsheet.Charts;

using var workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Dashboard";

// Import data for chart & pivot table
worksheet.Import(new object[,] {
        { "Region", "Q1 Sales", "Q2 Sales" },
        { "North", 4500, 5200 },
        { "South", 3200, 3800 },
        { "East", 5100, 4700 },
        { "West", 2800, 3100 }
    }, 0, 0);
CellRange dataRange = worksheet.GetDataRange();

// Create a clustered column chart
Chart chart = worksheet.Charts.Add(ChartType.ColumnClustered, dataRange);
chart.TopLeftCell = worksheet.Cells["E2"];
chart.BottomRightCell = worksheet.Cells["L15"];
chart.Title.SetValue("Quarterly Sales by Region");
chart.Style = ChartStyle.ColorGradient;

// Create a pivot table
Worksheet pvtSheet = workbook.Worksheets.Add("Pivot");
var pivotTable = pvtSheet.PivotTables.Add(dataRange, pvtSheet["A1"]);
pivotTable.RowFields.Add(pivotTable.Fields["Region"]);
pivotTable.DataFields.Add(pivotTable.Fields["Q1 Sales"], "Sum of Q1");
pivotTable.DataFields.Add(pivotTable.Fields["Q2 Sales"], "Sum of Q2");
pivotTable.Style = workbook.TableStyles[BuiltInPivotStyleId.PivotStyleMedium9];

using var outputStream = new MemoryStream();
workbook.SaveDocument(outputStream, DocumentFormat.Xlsx);
Copy
  • C#
using DevExpress.Spreadsheet;
using DevExpress.XtraPrinting;

using var workbook = new Workbook();
using var inputStream = new MemoryStream(File.ReadAllBytes("Template.xlsx"));
workbook.LoadDocument(inputStream, DocumentFormat.Xlsx);
workbook.Calculate();
Worksheet worksheet = workbook.Worksheets[0];

// Export to PDF with options
PdfExportOptions pdfOptions = new PdfExportOptions();
pdfOptions.DocumentOptions.Author = "DevExpress";
pdfOptions.ImageQuality = PdfJpegImageQuality.Medium;
using var pdfStream = new MemoryStream();
workbook.ExportToPdf(pdfStream, pdfOptions);

// Export the first worksheet to HTML
using var htmlStream = new MemoryStream();
workbook.ExportToHtml(htmlStream, 0);

// Export the first worksheet to CSV
workbook.Options.Export.Csv.Worksheet = worksheet.Name;
using var csvStream = new MemoryStream();
workbook.SaveDocument(csvStream, DocumentFormat.Csv);

// Export a cell range as an image
CellRange dataRange = worksheet.GetDataRange();
using var imageStream = new MemoryStream();
dataRange.ExportToImage(imageStream, ImageFileFormat.Png);
Copy
dotnet add package DevExpress.Document.ProcessorCopy

Word Processing Document API

Automate common DOC/DOCx word processing document workflows,
such as document conversion and report generation.

Key Features
Microsoft Word Compatibility

Create or open documents in all major Word formats. Edit content, manage styles, page layouts, fields, tables, lists, and all essential document elements. Save the result while ensuring exceptional fidelity.

Document Security

Protect documents with password encryption, apply read-only restrictions and editing permissions, and add digital signatures.

Accessibility & Compliance

Generate documents that meet accessibility standards and compliance requirements. Export Word files to accessible and archive PDF formats.

Mail Merge & Fields

Automate document generation – from personalized mailings and invoices to newsletters and more. Includes our integrated/high performance mail merge engine (supports hierarchical data and ships with advanced field management APIs).

Content Editing

Programmatically create, access, and modify text, paragraphs, tables, styles, and other essential Word elements.

Export Capabilities

Convert documents to PDF, HTML, plain text, and image formats. Preserve layout, formatting, and content during export.

Microsoft Word Compatibility

Create or open documents in all major Word formats. Edit content, manage styles, page layouts, fields, tables, lists, and all essential document elements. Save the result while ensuring exceptional fidelity.

Document Security

Protect documents with password encryption, apply read-only restrictions and editing permissions, and add digital signatures.

Accessibility & Compliance

Generate documents that meet accessibility standards and compliance requirements. Export Word files to accessible and archive PDF formats.

Mail Merge & Fields

Automate document generation – from personalized mailings and invoices to newsletters and more. Includes our integrated/high performance mail merge engine (supports hierarchical data and ships with advanced field management APIs).

Content Editing

Programmatically create, access, and modify text, paragraphs, tables, styles, and other essential Word elements.

Export Capabilities

Convert documents to PDF, HTML, plain text, and image formats. Preserve layout, formatting, and content during export.

  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System.Drawing;
using DevExpress.Drawing.Printing;

using var inputStream = new MemoryStream(File.ReadAllBytes("Document.docx"));
using var wordProcessor = new RichEditDocumentServer();

// Load from various Word formats (DOCX, DOC, RTF, ODT, etc.)
wordProcessor.LoadDocument(inputStream, DocumentFormat.Docx);
Document document = wordProcessor.Document;

// Configure page layout
Section section = document.Sections[0];
section.Page.PaperKind = DXPaperKind.Letter;
section.Page.Landscape = true;

// Apply Watermark
document.WatermarkManager.SetText("Confidential", new TextWatermarkOptions()
{
    Color = Color.Red,
    FontSize = 72,
    Layout = WatermarkLayout.Diagonal,
    Semitransparent = true
}
);

// Save to different Word formats
using var docxStream = new MemoryStream();
using var rtfStream = new MemoryStream();
wordProcessor.SaveDocument(docxStream, DocumentFormat.Docx);
wordProcessor.SaveDocument(rtfStream, DocumentFormat.Rtf);
Copy
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;

using var inputStream = new MemoryStream(File.ReadAllBytes("Document.docx"));
using var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument(inputStream, DocumentFormat.Docx);
Document document = wordProcessor.Document;

// Grant editing permissions to specific users/groups
RangePermissionCollection rangePermissions = document.BeginUpdateRangePermissions();
DocumentRange editableRange = document.Paragraphs[0].Range;
RangePermission rp = rangePermissions.CreateRangePermission(editableRange);
rp.Group = "Everyone";
rangePermissions.Add(rp);
document.EndUpdateRangePermissions(rangePermissions);

// Apply read-only protection with a password
document.Protect("readonly_password", DocumentProtectionType.ReadOnly);

// Save as a password-encrypted file
EncryptionSettings encryptionSettings = new EncryptionSettings();
encryptionSettings.Type = EncryptionType.Strong;
encryptionSettings.Password = "encryption_password";

using var outputStream = new MemoryStream();
wordProcessor.SaveDocument(outputStream, DocumentFormat.Docx, encryptionSettings);
Copy
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.XtraPrinting;

using var inputStream = new MemoryStream(File.ReadAllBytes("document.docx"));
using var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument(inputStream, DocumentFormat.Docx);
Document document = wordProcessor.Document;

// Set picture properties for accessibility
foreach (Shape shape in document.Shapes)
{
    if (shape.Type == ShapeType.Picture)
    {
        shape.Decorative = false;
        shape.AltText = "Image description for screen readers.";
    }
}

var pdfOptions = new PdfExportOptions();
// Export as PDF/UA
pdfOptions.PdfUACompatibility = PdfUACompatibility.PdfUA1;
// Export as PDF/A-3a
pdfOptions.PdfACompatibility = PdfACompatibility.PdfA3a;

using var pdfStream = new MemoryStream();
wordProcessor.ExportToPdf(pdfStream, pdfOptions);
Copy
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;

using var wordProcessor = new RichEditDocumentServer();
Document document = wordProcessor.Document;

// Insert merge fields programmatically
document.AppendText("Invoice for ");
document.Fields.Create(document.Range.End, "MERGEFIELD CustomerName");
document.Paragraphs.Append();
document.AppendText("Total Amount: ");
document.Fields.Create(document.Range.End, "MERGEFIELD OrderTotal \\# $#,##0.00");

// Bind a data source and configure merge options
MailMergeOptions mergeOptions = document.CreateMailMergeOptions();
mergeOptions.MergeMode = MergeMode.NewSection;
mergeOptions.DataSource = new[] {
        new { CustomerName = "Jane Cooper", OrderTotal = 1250.00m },
        new { CustomerName = "John Smith", OrderTotal = 890.50m }
    };

// Execute mail merge and save
using var outputStream = new MemoryStream();
wordProcessor.MailMerge(mergeOptions, outputStream, DocumentFormat.Docx);
Copy
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System.Drawing;

// Generate a report from scratch
using var wordProcessor = new RichEditDocumentServer();
Document document = wordProcessor.Document;

// Insert and format text
document.AppendText("Quarterly Report\n");
DocumentRange titleRange = document.Paragraphs[0].Range;
CharacterProperties titleProps = document.BeginUpdateCharacters(titleRange);
titleProps.FontName = "Arial";
titleProps.FontSize = 24;
titleProps.Bold = true;
titleProps.ForeColor = Color.DarkBlue;
document.EndUpdateCharacters(titleProps);
document.Paragraphs[0].Alignment = ParagraphAlignment.Center;

// Create and apply a custom paragraph style
ParagraphStyle headingStyle = document.ParagraphStyles.CreateNew();
headingStyle.Name = "CustomHeading";
headingStyle.FontSize = 16;
headingStyle.Bold = true;
document.ParagraphStyles.Add(headingStyle);

document.AppendText("Sales Summary\n");
document.Paragraphs[1].Style = headingStyle;

// Create a table
Table table = document.Tables.Create(document.Range.End, 2, 3,
    AutoFitBehaviorType.AutoFitToWindow);
document.InsertText(table[0, 0].Range.Start, "Product");
document.InsertText(table[0, 1].Range.Start, "Quantity");
document.InsertText(table[0, 2].Range.Start, "Revenue");
document.InsertText(table[1, 0].Range.Start, "Widget A");
document.InsertText(table[1, 1].Range.Start, "500");
document.InsertText(table[1, 2].Range.Start, "$12,500");

using var reportStream = new MemoryStream();
wordProcessor.SaveDocument(reportStream, DocumentFormat.Docx);
Copy
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.Export.Image;
using DevExpress.Drawing;
using DevExpress.XtraPrinting;

using var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument("Document.docx");

// Export to PDF with options
var pdfOptions = new PdfExportOptions();
pdfOptions.ImageQuality = PdfJpegImageQuality.Highest;
pdfOptions.DocumentOptions.Author = "DevExpress";
using var pdfStream = new MemoryStream();
wordProcessor.ExportToPdf(pdfStream, pdfOptions);

// Export to HTML string/stream
wordProcessor.Options.Export.Html.EmbedImages = true;
string htmlContent = wordProcessor.HtmlText;
using var htmlStream = new MemoryStream();
wordProcessor.SaveDocument(htmlStream, DocumentFormat.Html);

// Export to plain text string/stream
string plainText = wordProcessor.Text;
using var textStream = new MemoryStream();
wordProcessor.SaveDocument(textStream, DocumentFormat.PlainText);

// Export pages as images
IReadOnlyList<Stream> imageStreams = wordProcessor.Document.ExportToImage(
    new RichEditImageExportOptions()
    {
        Format = DXImageFormat.Png,
        Resolution = 300
    });
Copy
dotnet add package DevExpress.Document.ProcessorCopy

PowerPoint Presentation API

Analyze, modify, convert, print, and digitally sign Microsoft PowerPoint presentations within your .NET apps.

Key Features
Microsoft PowerPoint Compatibility

Generate, load, edit, and save PPTX presentations. The API preserves slide objects, layouts, themes, and formatting to ensure compatibility with Microsoft PowerPoint.

Presentation Management

Build a presentation from scratch. Generate and modify slide masters and layouts. Add, remove, copy, extract, and rearrange slides.

Shapes and Tables

Insert and customize shapes, images, text boxes, placeholders, and tables.

Content Management & Extraction

Access, modify, and format slide content - text, images, tables, placeholders, and speaker notes.

Export Capabilities

Once you are done editing a presentation, save it as a PPTX file, export to PDF, or send it to the printer.

Microsoft PowerPoint Compatibility

Generate, load, edit, and save PPTX presentations. The API preserves slide objects, layouts, themes, and formatting to ensure compatibility with Microsoft PowerPoint.

Presentation Management

Build a presentation from scratch. Generate and modify slide masters and layouts. Add, remove, copy, extract, and rearrange slides.

Shapes and Tables

Insert and customize shapes, images, text boxes, placeholders, and tables.

Content Management & Extraction

Access, modify, and format slide content - text, images, tables, placeholders, and speaker notes.

Export Capabilities

Once you are done editing a presentation, save it as a PPTX file, export to PDF, or send it to the printer.

  • C#
using DevExpress.Docs.Presentation;
using DevExpress.Drawing;
using System.Drawing;

// Load a presentation and update branding
using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Customize the slide master - update background and add a logo
SlideMaster master = presentation.SlideMasters[0];
master.Background = new CustomSlideBackground(
    new SolidFill(Color.DarkGray));

using var logoStream = new MemoryStream(File.ReadAllBytes("logo.png"));
using var logoImage = DXImage.FromStream(logoStream);
PictureShape logo = new PictureShape(logoImage,
    new RectangleF(100, 50, 2500, 415));
master.Shapes.Add(logo);

// Customize the title slide layout - add a corporate footer
SlideLayout titleLayout = master.Layouts.Get(SlideLayoutType.Title);
Shape footerShape = new Shape(ShapeType.Rectangle, 2250, 3225, 1500, 100);
footerShape.Fill = new NoFill();
footerShape.Outline.Fill = new NoFill();
footerShape.TextArea = new TextArea("Some Company. All rights reserved.");
var paragraphProperties = footerShape.TextArea.Paragraphs[0].Properties;
paragraphProperties.Alignment = TextParagraphAlignment.Center;
paragraphProperties.TextProperties.FontSize = 20;
paragraphProperties.TextProperties.Fill = new SolidFill(Color.White);
titleLayout.Shapes.Add(footerShape);

// Save into different PowerPoint formats
using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
using var templateOutputStream = new MemoryStream();
presentation.SaveDocument(templateOutputStream, DocumentFormat.Potx);
Copy
  • C#
using DevExpress.Docs.Presentation;

// Merge two speakers' decks into a single presentation
using var mergedPresentation = new Presentation();
mergedPresentation.Slides.Clear();

// Append all slides from the first speaker's deck
using var inputStream1 = new MemoryStream(File.ReadAllBytes("Speaker1.pptx"));
using var speaker1 = new Presentation(inputStream1, DocumentFormat.Pptx);
foreach (Slide slide in speaker1.Slides)
    mergedPresentation.Slides.Add(slide);

// Append all slides from the second speaker's deck
using var inputStream2 = new MemoryStream(File.ReadAllBytes("Speaker2.pptx"));
using var speaker2 = new Presentation(inputStream2, DocumentFormat.Pptx);
foreach (Slide slide in speaker2.Slides)
    mergedPresentation.Slides.Add(slide);

// Extract 3 slides for a teaser presentation
using var teaserPresentation = new Presentation();
teaserPresentation.Slides.Clear();
teaserPresentation.SlideSize = mergedPresentation.SlideSize;
for (int i = 0; i < 3; i++)
{
    Slide cloned = mergedPresentation.Slides[i].Clone();
    teaserPresentation.Slides.Add(cloned);
}

using var mergedStream = new MemoryStream();
mergedPresentation.SaveDocument(mergedStream, DocumentFormat.Pptx);
using var teaserStream = new MemoryStream();
teaserPresentation.SaveDocument(teaserStream, DocumentFormat.Pptx);
Copy
  • C#
using DevExpress.Docs.Presentation;

// Build a workstream breakdown presentation
using var presentation = new Presentation();
Slide slide = presentation.Slides[0];
slide.Shapes.Clear();

// Add a workstream table
Table workstreamTable = new Table(4, 3);
workstreamTable.X = 250; workstreamTable.Y = 250;
workstreamTable.Width = 3500;

// Fill the table with data and apply formatting
var tableData = new string[,]
{
        { "Workstream", "Owner", "Progress" },
        { "Data Intake", "Team A", "100%" },
        { "Normalization", "Team B", "85%" },
        { "Validation", "Team C", "90%" }
};
for (int i = 0; i < workstreamTable.Rows.Count; i++)
    for (int j = 0; j < workstreamTable.Columns.Count; j++)
    {
        TableCell cell = workstreamTable[i, j];
        cell.TextArea.Text = tableData[i, j];
        var properties = cell.TextArea.Paragraphs[0].Properties;
        properties.Alignment = TextParagraphAlignment.Center;
        properties.TextProperties.FontSize = 30;
    }
workstreamTable.Style = new ThemedTableStyle(TableStyleType.MediumStyle3);
slide.Shapes.Add(workstreamTable);

using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
Copy
  • C#
using DevExpress.Docs.Presentation;
using System.Drawing;

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Update contact info across all slides
presentation.ReplaceText("Jane Doe", "John Smith",
    new TextSearchOptions { MatchCase = true });
presentation.ReplaceText("janecompany.com", "johncompany.com");

// Highlight "Revenue" in red throughout the presentation
IList<TextSearchInfo> revenueMatches = presentation.FindText("Revenue",
    new TextSearchOptions { MatchCase = false, WholeWordOnly = true });
presentation.ModifyTextProperties(revenueMatches,
    new TextProperties { Fill = new SolidFill(Color.Red) });

// Remove "Draft" from the title slide
Slide slide = presentation.Slides[0];
IList<TextSearchInfo> draftMatches = slide.FindText("Draft",
    new TextSearchOptions { MatchCase = true });
slide.RemoveText(draftMatches);

using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
Copy
  • C#
using DevExpress.Docs.Pdf;
using DevExpress.Docs.Presentation;

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Save presentations in different PowerPoint formats
using var potxStream = new MemoryStream();
presentation.SaveDocument(potxStream, DocumentFormat.Potx);

// Export to PDF with custom metadata and encryption
using var pdfStream = new MemoryStream();
var pdfOptions = new DevExpress.Docs.Presentation.Export.PdfExportOptions();
pdfOptions.DocumentOptions.Author = "Jane Doe, CFO";
pdfOptions.DocumentOptions.Title = "Investor Report";
var encryption = new EncryptionOptions("ownerpassword", "userpassword")
{
    Algorithm = EncryptionAlgorithm.AES256,
    DataExtractionPermissions = DocumentDataExtractionPermissions.NotAllowed,
    PrintPermissions = DocumentPrintPermissions.Allowed
};
pdfOptions.EncryptionOptions = encryption;
presentation.ExportToPdf(pdfStream, pdfOptions);
Copy
dotnet add package DevExpress.Docs.PresentationCopy

AI-ready Document Processing APIs

Intelligent document processing — summarize, translate, and chat with content using any AI model.

DevExpress Office File API offers backend-ready, AI-powered extensions for Word, PDF, and PowerPoint documents:

  • Summarize Documents

    Turn lengthy reports, contracts, or presentations into executive summaries perfect for document management systems, legal tech, and business intelligence dashboards.

  • Translate & Proofread

    Translate documents or fix grammar and spelling — all while preserving your original layout and rich text formatting.

  • "Chat" with Document Data

    Turn your documents into a knowledge base and allow users to ask questions in plain language — perfect for customer support portals, HR systems, and internal documentation.

  • Work with Your AI Provider of Choice

    Integrate cloud-based services (Azure OpenAI, OpenAI, Google Gemini) or offline models (Ollama, ONNX Runtime, AI Foundry Local). Use the AI service provider that fits your security, cost, and performance requirements.

  • Optimize for Enterprise Scale

    Activate automatic chunking for large documents. Reduce token costs and improve response times for production workloads.

Learn more about AI-powered extensions

Barcode Generation API

Generate high-quality 1D and 2D barcodes in your .NET applications.

  • Barcode Types (Symbologies)

    Generate popular 1D (EAN, UPC, Code 128) and 2D (QR Code, DataMatrix, PDF417, Aztec) barcode types.

  • Custom Styling & Layout

    Configure module size, add text, modify colors, and adjust other visual settings.

  • High-Fidelity Output

    Export barcodes to PNG, JPEG, SVG, or PDF with print-ready quality.

  • Add Barcode to Documents

    Insert barcodes directly into Word, Excel, PowerPoint, and PDF documents using DevExpress Document Processing APIs.

Learn more about Barcode Generation API

Best in Class Tools

DevExpress is honored to have been voted best in class 16 times in this year's Visual Studio Magazine Reader's Choice Awards.

Experience the DevExpress difference and see why your peers consistently vote our products #1. With our Universal Subscription, you will build your best, see complex software with greater clarity, increase your productivity and create stunning applications for Windows, Web and your Mobile world.

16 VSM Awards in 2025 x16
18 VSM Awards in 2024 x18
19 VSM Awards in 2023 x19
20 VSM Awards in 2022 x20

Supported IDEs

Review the list of development tools and frameworks supported by our products. We strongly recommend that you always download and use the most recent versions. If the latest version does not support the IDE or framework you're using, please submit a support ticket via the DevExpress Support Center and request an evaluation version that suits your requirements.

Version
v25.2.7
v24.2.* — v25.1.11
v24.1.17
v23.1.* — v23.2.15
Support Status
Supported
Supported
Limited Support
Not Supported
(for legacy apps)
Minor Updates
Yes
Yes
No
No
Security Updates
Yes
Yes
Yes
No
Supported Frameworks
.NET 8 / .NET 9 / .NET 10
.NET Framework 4.6.2+
.NET 8 / .NET 9
.NET Framework 4.6.2+
.NET 6 / .NET 7 / .NET 8 / .NET 9
.NET Framework 4.5.2+
.NET 6
.NET 5
.NET Framework 4.5.2+
.NET Standard 2.0+
Supported IDE
Visual Studio 2026
Visual Studio 2022
Visual Studio 2019
Visual Studio 2022
Visual Studio 2019
Visual Studio 2022
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
Visual Studio 2022
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
 

FAQ — Common Questions (All Products)

Does the Office File API support .NET?

Yes. DevExpress Office File API supports .NET 10, .NET 9, and .NET 8. Our Word/Excel/PDF/PowerPoint file generation API works in apps that run on Windows, Linux, and macOS. You can deploy your apps on Azure and AWS.

What .NET Framework versions does the Office File API support?

DevExpress Office File API supports .NET Framework 4.6.2, 4.7, and 4.8 (current version v25.2).

For complete version compatibility information, refer to our prerequisites documentation: Office File API Prerequisites.

How is the Office File API licensed?

DevExpress Office File API is licensed per developer. Each developer using the API requires an individual license. Licensing is not based on the number of machines, deployments, CPUs, or end users.

The Office File API is available through two licensing options:

For complete licensing terms, refer to the DevExpress End-User License Agreement.

FAQ — PDF Document API

Is Adobe Acrobat® required to create PDFs with the DevExpress PDF Document API?

No. You do not need to install Adobe Acrobat® or Adobe Reader® to generate or manipulate PDF files. DevExpress PDF Document API is a standalone library that creates and processes PDF documents programmatically.

Which NuGet package do I need for the PDF Document API?

Install the DevExpress.Document.Processor NuGet package or for .NET Framework projects using the DevExpress Unified Component Installer, reference the following v25.2+ assemblies:

  • DevExpress.Data.dll
  • DevExpress.Docs.dll
  • DevExpress.Drawing.dll
  • DevExpress.Office.Core.dll
  • DevExpress.Pdf.Core.dll
  • DevExpress.Pdf.Drawing.dll
What can I do with the PDF Document API?

DevExpress PDF Document API allows you to create, load, modify, save, and manipulate PDF documents programmatically. You can generate PDFs from scratch with text, graphics, and images, merge and split PDF files, add watermarks and annotations, create and fill interactive forms (AcroForms), digitally sign documents, encrypt and protect PDFs, extract text and images, work with attachments, create PDF/A compliant documents, add bookmarks and hyperlinks, print PDFs, export PDF pages to images, and create ZUGFeRD-compliant invoices. 

Does the PDF Document API include AI-powered features?

Yes. The DevExpress PDF Document API includes AI-powered extensions for document processing. These extensions support translation of entire PDF documents or specific pages/regions, summarization of PDF content, and contextual question answering using RAG (retrieval-augmented generation).

To use AI extensions, install the DevExpress.AIIntegration.Docs NuGet package.

Refer to our documentation for implementation details: AI-powered Extensions for DevExpress Office File API.

How do I load a PDF document and print it?
  • C#
using DevExpress.Pdf;

using (PdfDocumentProcessor processor = new PdfDocumentProcessor()) { 
    processor.LoadDocument("document.pdf");
    PdfPrinterSettings settings = new PdfPrinterSettings();
    settings.PageNumbers = new int[] { 1, 2, 3 };
    processor.Print(settings);
}
Copy
How do I create a simple AcroForm?
  • C#
using DevExpress.Pdf;

using (PdfDocumentProcessor processor = new PdfDocumentProcessor()) { 
    processor.CreateEmptyDocument();
    PdfDocumentFacade facade = processor.DocumentFacade;
    PdfAcroFormFacade form = facade.AcroForm;
    var nameField = form.AddTextFormField(1, "Name",
        new PdfRectangle(50, 700, 200, 720));
    processor.SaveDocument("form.pdf");
}
Copy
How do I create a ZUGFeRD-compliant invoice?

Simple approach:

  • C#
using DevExpress.Pdf; 

using (PdfDocumentProcessor processor = new PdfDocumentProcessor()) { 
    processor.LoadDocument("invoice.pdf");
    processor.Document.AttachZugferdInvoice(
        File.ReadAllBytes("zugferd-invoice.xml"));
    processor.SaveDocument("invoice-zugferd.pdf");
}
Copy

With version and conformance level (XMP metadata approach):

  • C#
using DevExpress.Pdf;

using (PdfDocumentProcessor processor = new PdfDocumentProcessor()) { 
    processor.LoadDocument("invoice.pdf");
    processor.Document.AttachZugferdInvoice(
        File.ReadAllBytes("zugferd-invoice.xml"),
        PdfZugferdVersion.Version232,
        PdfZugferdConformanceLevel.EN16931);
    processor.SaveDocument("invoice-zugferd.pdf");
}
Copy

Note: The AttachZugferdInvoice method does not convert the document to a PDF/A-3b compatible file. Make certain your document is PDF/A-3b compliant before attaching ZUGFeRD XML.

How do I get started with the PDF Document API?

FAQ — Word Processing API

Is Microsoft Word® required to create documents with the DevExpress Word Processing API?

No. You do not need to install Microsoft Word® to generate DOC, DOCX, RTF, or other supported formats. The DevExpress Word Processing Document API is a standalone library designed to create/load/modify/save/export Microsoft Word® documents programmatically.

Which NuGet package do I need for the Word Processing API?

For .NET install the DevExpress.Document.Processor NuGet package.

For .NET Framework projects using the DevExpress Unified Component Installer, reference the following v25.2+ assemblies:

  • DevExpress.Data.dll
  • DevExpress.Drawing.dll
  • DevExpress.Office.Core.dll
  • DevExpress.RichEdit.Core.dll
  • DevExpress.Printing.Core.dll
  • DevExpress.Pdf.Core.dll
What can I do with the Word Processing API?

The DevExpress Word Processing Document API allows you to create, load, modify, save, and export Word documents programmatically. You can format document text, manage page layout, work with sections and page numbering, add headers and footers, insert tables and images, create mail merge documents, track changes and compare documents, work with content controls and fields, protect documents with passwords, digitally sign documents, search and replace text, convert between supported formats (DOCX, DOC, RTF, HTML, TXT, ODT), and export to PDF.

Which Microsoft Word® file formats does the DevExpress Word Processing API support? What other file formats are supported?

The DevExpress Word Processing Document API supports Microsoft’s DOC and DOCX file formats. Our Word Processing API also supports RTF.

Does the Word Processing API include AI-powered features?

Yes. The DevExpress Word Processing API includes AI-powered extensions optimized for document processing. These extensions integrate with language models via Microsoft.Extensions.AI (IChatClient interface) and support both cloud-based services (Azure OpenAI, OpenAI, Google Gemini) and local models (Ollama, ONNX Runtime).

Available AI capabilities include:

  • Proofread - Reviews grammar, spelling, and style in real time
  • Translate - Translates document content while preserving formatting
  • Summarize - Generates concise summaries (abstractive or extractive modes)
  • Ask AI - Answers contextual questions about document content using RAG

To use AI extensions, install the DevExpress.AIIntegration.Docs NuGet package.

Refer to our documentation for implementation details: AI-powered Extensions for DevExpress Office File API.

How do I export a Word document to PDF?
  • C#
using DevExpress.XtraRichEdit;

using (var wordProcessor = new RichEditDocumentServer()) {
    wordProcessor.LoadDocument("report.docx");
    wordProcessor.ExportToPdf("report.pdf");
}
Copy
How do I create a mail merge document?
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;

using (var wordProcessor = new RichEditDocumentServer()) {
    Document doc = wordProcessor.Document;

    // Create simple template with merge fields
    doc.AppendText("Dear ");
    doc.Fields.Create(doc.Range.End, "MERGEFIELD FirstName");
    doc.AppendText(",\n\nThank you!\n\nSincerely,\nThe Team");

    // Create data source
    var data = new[] {
        new { FirstName = "John", LastName = "Doe" },
        new { FirstName = "Jane", LastName = "Smith" }
    };

    // Perform mail merge
    MailMergeOptions options = doc.CreateMailMergeOptions();
    options.DataSource = data;
    options.MergeMode = MergeMode.NewSection;
    wordProcessor.MailMerge(options, "output.docx", DocumentFormat.OpenXml);
}
Copy
How do I compare two document revisions?
  • C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;

var original = new RichEditDocumentServer();
var revised = new RichEditDocumentServer();
original.LoadDocument("original.docx");
revised.LoadDocument("revised.docx");
Document comparison = original.Document.Compare(revised.Document);
comparison.SaveDocument("comparison.docx", DocumentFormat.Docx);
Copy
How do I get started with the Word Processing Document API?

FAQ — Spreadsheet Document API

Is Microsoft Excel® required to create spreadsheets with the DevExpress Spreadsheet API?

No. You do not need to install Microsoft Excel® to generate XLS, XLSX, CSV, or other supported formats. DevExpress Spreadsheet Document API is a standalone library that creates spreadsheets programmatically.

Which Microsoft Excel® file formats does the DevExpress Spreadsheet API support? What other file formats are supported?

The DevExpress Spreadsheet API supports Microsoft's XLS and XLSX file formats. Our Spreadsheet API also supports CSV.

Which NuGet package do I need for the Spreadsheet API?

Install the DevExpress.Document.Processor NuGet package or for .NET Framework projects using the DevExpress Unified Component Installer, reference the following v25.2+ assemblies:

  • DevExpress.Charts.Core.dll
  • DevExpress.Data.dll
  • DevExpress.DataAccess.dll
  • DevExpress.DataVisualization.Core.dll
  • DevExpress.Docs.dll
  • DevExpress.Drawing.dll
  • DevExpress.Office.Core.dll
  • DevExpress.Pdf.Core.dll
  • DevExpress.Printing.Core.dll
  • DevExpress.Sparkline.Core.dll
  • DevExpress.Spreadsheet.Core.dll
  • DevExpress.TreeMap.Core.dll
  • DevExpress.XtraCharts.dll
  • DevExpress.XtraTreeMap.dll
What can I do with the Spreadsheet API?

DevExpress Spreadsheet Document API allows you to create, load, modify, save, and export spreadsheet documents programmatically. You can manage worksheets (create, rename, copy, hide, delete), work with rows, columns, and cells, apply formatting and styles, create and calculate formulas using over 400 Excel-compatible functions, work with charts and sparklines, add shapes and pictures, create pivot tables, manage tables and defined names, apply data validation, protect worksheets and workbooks, digitally sign documents, and export to PDF and HTML.

Does the Spreadsheet API include AI-powered features?

Yes. The DevExpress Spreadsheet API includes AI-powered extensions. These extensions integrate with language models via Microsoft.Extensions.AI and support translation, summarization, and contextual question answering for spreadsheet content.

To use AI extensions, install the DevExpress.AIIntegration.Docs NuGet package.

Refer to our documentation for implementation details: AI-powered Extensions for DevExpress Office File API.

How do I load a spreadsheet and export it to PDF?

  • C#
using DevExpress.Spreadsheet;

using (Workbook workbook = new Workbook()) { 
    workbook.LoadDocument("report.xlsx"); 
    workbook.Calculate(); 
    workbook.ExportToPdf("report.pdf"); 
}
Copy

How do I define a formula for a cell?

  • C#
using DevExpress.Spreadsheet;

using (Workbook workbook = new Workbook()) { 
    Worksheet sheet = workbook.Worksheets[0]; 
    sheet.Cells["D2"].FormulaInvariant = "=B2*C2"; 
    sheet.Cells["E10"].FormulaInvariant = "=SUM(E2:E9)"; 
}
Copy

How do I create an array formula?

  • C#
using DevExpress.Spreadsheet;

using (Workbook workbook = new Workbook()) { 
    Worksheet sheet = workbook.Worksheets[0]; 
    sheet.Range["D2:D5"].ArrayFormula = "=B2:B5*C2:C5"; 
    workbook.SaveDocument("arrayformula.xlsx"); 
}
Copy

How do I create a chart?

  • C#
using DevExpress.Spreadsheet;

using (Workbook workbook = new Workbook()) { 
    Worksheet sheet = workbook.Worksheets[0]; 
    sheet["A1"].Value = "Month"; 
    sheet["B1"].Value = "Sales"; 
    Chart chart = sheet.Charts.Add(ChartType.ColumnClustered); 
    chart.SelectData(sheet["A1:B3"]); 
    workbook.SaveDocument("chart.xlsx"); 
}
Copy

How do I get started with the Spreadsheet Document API?

FAQ — PowerPoint Presentation API

Is Microsoft PowerPoint® required to create presentations with the DevExpress PowerPoint Presentation API?

No. You do not need to install PowerPoint® to generate PPTX, PPTM, POTX, or POTM files. DevExpress PowerPoint Presentation API is a standalone library that creates presentations programmatically.

  • C#
using DevExpress.Docs.Presentation;
using System.Drawing;

// Create a new presentation
Presentation presentation = new Presentation();

// Remove default slide and create a blank slide
presentation.Slides.Clear();
Slide slide = new Slide(SlideLayoutType.Blank);

// Add a title shape with formatted text
Shape titleShape = new Shape(ShapeType.Rectangle, 100, 100, 8000, 800);
titleShape.TextArea = new TextArea("Quarterly Sales Report");
titleShape.TextArea.Paragraphs[0].Properties.TextProperties.FontSize = 44;
titleShape.Fill = new SolidFill(Color.Transparent);
slide.Shapes.Add(titleShape);
 

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

// Save the presentation
presentation.SaveDocument("report.pptx");
Copy
Which NuGet package do I need for the PowerPoint Presentation API?

For .NET projects, install the DevExpress.Docs.Presentation NuGet package. This package includes all dependencies required to create, modify, and save PowerPoint presentations.

For .NET Framework projects using the DevExpress Unified Component Installer, reference the following v25.2+ assemblies:

  • DevExpress.Docs.Presentation.dll
  • DevExpress.Data.dll
  • DevExpress.Drawing.dll
  • DevExpress.Printing.Core.dll
  • DevExpress.Office.Core.dll
  • DevExpress.Docs.Core.dll
  • DevExpress.Pdf.Core.dll
What can I do with the PowerPoint Presentation API?

DevExpress PowerPoint Presentation API allows you to create, load, modify, save, and export presentations programmatically. You can manage slide masters and layouts, add shapes, text, images, tables, and charts, apply themes and formatting, search and replace text content, protect presentations with passwords, digitally sign documents, merge and split presentations, and export to PDF.

Does the PowerPoint Presentation API support AI-powered features?

Yes. DevExpress Presentation API includes AI-powered extensions for presentation processing. These extensions support translation of entire presentations or specific slides, summarization of presentation content, and proofreading capabilities while preserving original formatting.

To use AI extensions, install the DevExpress.AIIntegration.Docs NuGet package.

Refer to our documentation for implementation details: AI-powered Extensions for DevExpress Office File API.

How do I get started with the PowerPoint Presentation API?

Office File API: Per Developer Pricing

with a 60-day Unconditional Money Back Guarantee

We are so confident in our products and services that we back them with a 60 day no questions asked money back guarantee. If within the first 60 days of ownership you are not satisfied with the capabilities of our tools, you can request a full refund of the amount you paid to DevExpress by writing to clientservices@devexpress.com or by calling +1 (818) 844-3383.

Best Value
Reporting
.NET 8 / .NET 9 / .NET 10 Support
Visual Studio Report Designer
JetBrains Rider Report Designer
Visual Studio Code Report Designer
WinForms Document Viewer
WinForms End-User Report Designer
Document Viewer (ASP.NET Web Forms/MVC/Core)
Web Report Designer (ASP.NET Web Forms/MVC/Core)
Blazor Document Viewer (JavaScript-based)
Blazor Report Viewer (Native)
Blazor End-User Report Designer (JavaScript-based)
WPF Document Viewer
WPF End-User Report Designer
Native Angular Document Viewer
Angular End-User Report Designer
Native React Document Viewer
React End-User Report Designer
AI-powered Extensions
WinForms Controls
.NET 8 / .NET 9 / .NET 10 Support
Data Grid
DirectX Hardware Acceleration
HTML & CSS Markup Support
AI Chat
Charting
Gantt
Spreadsheet
Rich Text Editor
Calendar & Scheduling
Diagrams
Ribbon
Toolbar-Menu
DirectX Form
Dock Windows
Pivot Grid
Tree List
TreeMap
Property Grid
PDF Viewer
Sankey Diagram
Sunburst
Layout Manager
Map Control
Heat Map
Gauge Controls
Navigation Pane
Tile Control
Live Tile Manager
Printing & Exporting
Spell Checker
Data Editors
MVVM Framework
Themes and Skinning
WPF Controls
.NET 8 / .NET 9 / .NET 10 Support
Data Grid
Tree List
Property Grid
AI Chat
Charting
Pivot Grid
Calendar & Scheduling
Spreadsheet
Rich Text Editor
Spell Checker
PDF Viewer
Diagrams
Sankey Diagram
Ribbon
Toolbar-Menu
TreeView
Dock Windows
Layout Manager
Navigation Controls
Data Editors
Map Control
Heat Map
Sunburst
TreeMap
Gantt Control
Gauge Controls
Printing and Exporting
MVVM Framework
Application Themes
Blazor UI Components
Grid
AI Chat
Bar Gauge
Charts
Data Editors
Dialogs & Windows
File Management
HTML Editor
PDF Viewer
Layout
Map
Navigation
Pivot Table
Reports
Ribbon
Rich Text Editor
Scheduler
TreeList
BI Dashboard
.NET MAUI Controls with Support
Data Grid
CollectionView
Charts
Scheduler
PDF Viewer
Bottom Sheet
Data Editors
Data Form & Form Components
HTML Editor
Image Control
Layout Panels
Popup
Circular Gauge
Shimmer Control
Tabs
Toggle Switch
Toolbar
Tree View
.NET MAUI Project Templates
Office File API Support
jQuery Components
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Components
Map Components
Navigation and Layout
Dialogs and Notifications
Actions and Lists
Data Export
Theme Builder
Angular Components
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Components
Map Components
Navigation and Layout
Dialogs and Notifications
Actions and Lists
Data Export
Theme Builder
React Components
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Components
Map Components
Navigation and Layout
Dialogs and Notifications
Actions and Lists
Data Export
Theme Builder
Vue Components
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Components
Map Components
Navigation and Layout
Dialogs and Notifications
Actions and Lists
Data Export
Theme Builder
ASP.NET Web Forms Controls
Data Grid
Charting
Ribbon
Spreadsheet
Rich Text Editor
Calendar & Scheduling
Card View
Site Navigation
Page Layout
Docking and Popups
Pivot Grid
Tree List
TreeView
Vertical Grid
HTML Editor
Gauge Controls
Data Browsing
Image Browsing
File Management
Multi-Purpose Site Controls
Printing & Exporting
Spell Checker
Data Editors
Themes and Skinning
Diagram
Gantt
ASP.NET MVC 5 Extensions
Data Grid
Charting
Ribbon
Spreadsheet
Rich Text Editor
Calendar & Scheduling
Card View
Page Layout
Site Navigation
Docking and Popups
Pivot Grid
Tree List
TreeView
Vertical Grid
HTML Editor
Data Browsing
Image Browsing
File Management
Printing & Exporting
Spell Checker
Data Editors
Themes and Skinning
Diagram
Gantt
ASP.NET MVC 5 Client-Side Controls
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML/Markdown Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Controls
Map Control
Web Navigation and Layout
Dialogs and Notifications
Multi-Purpose Web Controls
Data Export
Theme Builder
ASP.NET Core (MVC & Razor Pages) Controls
.NET 8 / .NET 9 / .NET 10 Support
Data Grid
Charting
Calendar & Scheduling
Pivot Grid
TreeList
CardView
HTML/Markdown Editor
Chat
Diagram
Gantt
File Management
Form Layout
Data Editors
Gauge Controls
Map Control
Web Navigation and Layout
Dialogs and Notifications
Multi-Purpose Web Controls
Data Export
Theme Builder
ASP.NET Core Office Controls
.NET 8 / .NET 9 / .NET 10 Support
Spreadsheet
Rich Text Editor
Printing & Export
ASP.NET Bootstrap Controls
Data Grid
CardView
Charting
Ribbon
Rich Text Editor
File Manager
Scheduler
Site Navigation and Layout
Sparkline
Spreadsheet
Data Editors
Themes and Skinning
XPO - ORM Library
High Performance ORM
Full Support for 12 Database Engines
.NET 8 / .NET 9 / .NET 10 Support
Visual Data Model Designer
Office File API
.NET 8 / .NET 9 / .NET 10 Support
Non-Windows Environment Support (Linux, macOS, Azure, AWS)
Spreadsheet Document API (create, edit, update XLSX, XLS, CSV)
Export to Excel (XLSX, XLS, CSV)
Word Processing Document API (create, edit, update DOC/DOCX, RTF, HTML, etc.)
PDF Document API
PowerPoint Presentation API
AI-powered Document Processing API
Digital Signature API
Barcode Generation API
Zip Compression and Archive API
Unit Conversion API
Business Intelligence Dashboard
.NET 8 / .NET 9 / .NET 10 Support
WinForms Dashboard Viewer
WinForms End-User Dashboard Designer
WPF Dashboard Viewer
Blazor Dashboard Component
ASP.NET Core Dashboard Control (includes End-User Designer)
ASP.NET Web Forms Dashboard Control (includes End-User Designer)
ASP.NET MVC Dashboard Control (includes End-User Designer)
HTML JS Dashboard Control (includes End-User Designer)
Dashboard Component for Angular (includes End-User Designer)
Dashboard Component for React (includes End-User Designer)
Dashboard Component for Vue (includes End-User Designer)
VS Dashboard Designer
XAF - Cross-Platform .NET App UI
.NET 8 / .NET 9 / .NET 10 Support
WinForms, ASP.NET Core Blazor, ASP.NET Web Forms
Backend Web API Service
Entity Framework Core and XPO ORM Support
Multi-Tenancy Support
Role-based Access Control, Permission Management
Administrative UI (Manage Users & Roles at Runtime)
Audit Trail (History of Data Changes)
Validation (Prevent Data Errors)
Reporting (Shape, Export & Print Data)
Analytics (Dashboard, Chart, Pivot, Map)
Office Documents (Edit Rich Text & Spreadsheets)
File Attachments (Store Custom Files)
Clone Object (Copy Data Records)
Business Process Management (Workflow & State Machine)
Conditional Appearance (Manage UI Element State)
Event Planning (Scheduler & Notifications)
Tree List Editors (Organize Hierarchical Data)
Localization
Themes
.NET App Security & Web API Service
Entity Framework Core ORM Support
XPO ORM Support
Role-based Access Control & Permission Management
ASP.NET Core Web API / OData Service for CRUD and Authorization
Administrative UI to Manage Users and Roles at Runtime
Download Reports
Download File Attachments
Obtain Localized Strings
Validate Data
Audit Data Changes
CodeRush for Visual Studio
VS 2022 Support
VS 2019 Support
VS 2017 Support
VS 2015 Support
Roslyn-Powered Superior Performance
C#, VB.NET, XAML
TestCafe Studio: Functional Web Testing
Coded UI Support for WinForms Controls
Source Code *
WinForms Controls
ASP.NET Controls
WPF Controls
JavaScript - jQuery, Angular, React
Blazor UI Components
Reporting
.NET MAUI Controls with Support
XPO - ORM Library
Office File API
Data Visualization Dashboard
XAF - Cross-Platform .NET App UI
Technical Support

Frequently Asked Questions

To assist you in the ordering process, we've compiled a list of purchase and licensing related FAQs.

Purchase FAQ
Licensing FAQ
Product Delivery and Updates

If you require direct assistance from a member of the DevExpress team on a new purchase, an existing license or renewal/upgrade costs, email us at info@devexpress.com, or call us at +1 (818) 844-3383 between 7:30AM and 4:30PM Pacific Time.

Multi-Developer Discounts

Each developer within your organization must obtain an individual license for DevExpress UI components/development tools. We offer the following tiered discounts when purchasing more than one license for your development team (discounts are automatically computed during checkout):

2-5 Licenses: 5% discount
6-10 Licenses: 10% discount
11+ Licenses: 15% discount

If you wish to purchase 11 or more developer licenses for your team, and would like to discuss your needs with us, please email CorpSales@devexpress.com or call +1 (818) 844-3383 between 8:30AM and 4:30PM Pacific Time.

All pricing in US dollars

Pricing and licensing terms are subject to change with or without notice. Refer to the Developer Express End-User License Agreement for terms and conditions that govern redistribution rights.

If within the first 60 days of ownership you are not satisfied with the capabilities of our tools, you can request a full refund of the amount you paid to DevExpress by writing to clientservices@devexpress.com or by calling +1 (818) 844-3383.

* DevExpress does not include/ship source code for certain products, including CodeRush, TestCafe Studio, and Report Server.

Renewals

DevExpress licenses its software components and development technologies on a subscription basis. A subscription lasts for a 12 month period. Upon expiration of a subscription, you can optionally renew your license for additional 12 months to receive an additional year of product updates and technical support services. Please refer to our Licensing FAQ page for more information on product licensing.

On-time renewal rates are substantially lower than first year subscription costs. The following are on-time renewal rates as of 7/11/2025. Prices subject to change without notice.

Universal Subscription
$1,149.99
DXperience Subscription
$849.99
WinForms Subscription
$549.99
WPF Subscription
$549.99
ASP.NET & Blazor Subscription (includes DevExtreme)
$549.99
DevExtreme Complete
$449.99
Reporting Subscription
$399.99
Office File API Subscription
$599.99
CodeRush Ultimate
$124.99
TestCafe Studio Pro
$249.99

Start your free 30-day trial today!

Download our fully-functional 30-day trial today and
experience the DevExpress difference today.

 

Download Free Trial