IRONSOFTWAREHOME

Create, Read and Edit Excel Files in .NET MAUI

Curtis Chau
Curtis Chau
Updated: August 2, 2026

Introduction

This How-To Guide explains how to create and read Excel files in .NET MAUI apps for Windows using IronXL. Let's get started.

IronXL: C# Excel Library

IronXL is a C# .NET library for reading, writing, and manipulating Excel files. It lets users create Excel documents from scratch, including the content and appearance of Excel, as well as metadata such as the title and author. The library also supports customization features for user interface like setting margins, orientation, page size, images and so on. It does not require any external frameworks, platform integration, or other third-party libraries for generating Excel files. It is self-contained and stand-alone.

Install IronXL


To install IronXL, you can use the NuGet Package Manager Console in Visual Studio. Open the Console and enter the following command to install the IronXL library.

PM > Install-Package IronXL.Excel

Creating Excel Files in C# using IronXL

Design the Application Frontend

Open the XAML page named MainPage.xaml and replace the code in it with the following snippet of code.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MAUI_IronXL.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Label
                Text="Welcome to .NET Multi-platform App UI"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome Multi-platform App UI"
                FontSize="18"
                HorizontalOptions="Center" />

            <Button
                x:Name="createBtn"
                Text="Create Excel File"
                SemanticProperties.Hint="Click on the button to create Excel file"
                Clicked="CreateExcel"
                HorizontalOptions="Center" />

            <Button
                x:Name="readExcel"
                Text="Read and Modify Excel file"
                SemanticProperties.Hint="Click on the button to read Excel file"
                Clicked="ReadExcel"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

The code above creates the layout for our basic .NET MAUI application. It creates one label and two buttons. One button is for creating an Excel file, and the second button provides support to read and modify the Excel file. Both elements are nested in a VerticalStackLayout parent element so that they will appear vertically aligned on all supported devices.

Create Excel Files

It's time to create the Excel file using IronXL. Open the MainPage.xaml.cs file and write the following method in the file.

private void CreateExcel(object sender, EventArgs e)
{
    // Create a new Workbook
    WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

    // Create a Worksheet
    var sheet = workbook.CreateWorkSheet("2022 Budget");

    // Set cell headers
    sheet["A1"].Value = "January";
    sheet["B1"].Value = "February";
    sheet["C1"].Value = "March";
    sheet["D1"].Value = "April";
    sheet["E1"].Value = "May";
    sheet["F1"].Value = "June";
    sheet["G1"].Value = "July";
    sheet["H1"].Value = "August";

    // Fill worksheet cells with random values
    Random r = new Random();
    for (int i = 2; i <= 11; i++)
    {
        sheet["A" + i].Value = r.Next(1, 1000);
        sheet["B" + i].Value = r.Next(1000, 2000);
        sheet["C" + i].Value = r.Next(2000, 3000);
        sheet["D" + i].Value = r.Next(3000, 4000);
        sheet["E" + i].Value = r.Next(4000, 5000);
        sheet["F" + i].Value = r.Next(5000, 6000);
        sheet["G" + i].Value = r.Next(6000, 7000);
        sheet["H" + i].Value = r.Next(7000, 8000);
    }

    // Apply formatting (background and border)
    sheet["A1:H1"].Style.SetBackgroundColor("#d3d3d3");
    sheet["A1:H1"].Style.TopBorder.SetColor("#000000");
    sheet["A1:H1"].Style.BottomBorder.SetColor("#000000");
    sheet["H2:H11"].Style.RightBorder.SetColor("#000000");
    sheet["H2:H11"].Style.RightBorder.Type = IronXL.Styles.BorderType.Medium;
    sheet["A11:H11"].Style.BottomBorder.SetColor("#000000");
    sheet["A11:H11"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium;

    // Apply formulas
    decimal sum = sheet["A2:A11"].Sum();
    decimal avg = sheet["B2:B11"].Avg();
    decimal max = sheet["C2:C11"].Max();
    decimal min = sheet["D2:D11"].Min();

    sheet["A12"].Value = "Sum";
    sheet["B12"].Value = sum;

    sheet["C12"].Value = "Avg";
    sheet["D12"].Value = avg;

    sheet["E12"].Value = "Max";
    sheet["F12"].Value = max;

    sheet["G12"].Value = "Min";
    sheet["H12"].Value = min;

    // Save and open the Excel file
    SaveService saveService = new SaveService();
    saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream());
}

This source code creates a workbook and worksheet using IronXL, sets cell values, and formats the cells. It also demonstrates how to use Excel formulas with IronXL.

View Excel Files in the Browser

Open the MainPage.xaml.cs file and write the following code.

private void ReadExcel(object sender, EventArgs e)
{
    // Store the path of the file
    string filepath = @"C:\Files\Customer Data.xlsx";
    WorkBook workbook = WorkBook.Load(filepath);
    WorkSheet sheet = workbook.WorkSheets.First();

    // Calculate the sum of a range
    decimal sum = sheet["B2:B10"].Sum();

    // Modify a cell value and apply styles
    sheet["B11"].Value = sum;
    sheet["B11"].Style.SetBackgroundColor("#808080");
    sheet["B11"].Style.Font.SetColor("#ffffff");

    // Save and open the Excel file
    SaveService saveService = new SaveService();
    saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream());

    DisplayAlert("Notification", "Excel file has been modified!", "OK");
}

The source code loads the Excel file, applies a formula on a range of cells, and formats it with custom background and text coloring. Afterwards, the modified Excel file is saved and a notification is displayed.

Save Excel Files

In this section, we define the SaveService class that will save our Excel files in local storage.

Create a "SaveService.cs" class and write the following code:

using System;
using System.IO;

namespace MAUI_IronXL
{
    public partial class SaveService
    {
        public partial void SaveAndView(string fileName, string contentType, MemoryStream stream);
    }
}

Next, create a class named "SaveWindows.cs" inside the Platforms > Windows folder, and add the following code:

using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;

namespace MAUI_IronXL
{
    public partial class SaveService
    {
        public async partial void SaveAndView(string fileName, string contentType, MemoryStream stream)
        {
            StorageFile stFile;
            string extension = Path.GetExtension(fileName);
            IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;

            if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
            {
                FileSavePicker savePicker = new FileSavePicker();
                savePicker.DefaultFileExtension = ".xlsx";
                savePicker.SuggestedFileName = fileName;
                savePicker.FileTypeChoices.Add("XLSX", new List<string> { ".xlsx" });

                WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
                stFile = await savePicker.PickSaveFileAsync();
            }
            else
            {
                StorageFolder local = ApplicationData.Current.LocalFolder;
                stFile = await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
            }

            if (stFile != null)
            {
                using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
                {
                    using (Stream outputStream = zipStream.AsStreamForWrite())
                    {
                        outputStream.SetLength(0);
                        stream.WriteTo(outputStream);
                        await outputStream.FlushAsync();
                    }
                }

                MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
                UICommand yesCmd = new("Yes");
                msgDialog.Commands.Add(yesCmd);
                UICommand noCmd = new("No");
                msgDialog.Commands.Add(noCmd);

                WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);

                IUICommand cmd = await msgDialog.ShowAsync();
                if (cmd.Label == yesCmd.Label)
                {
                    await Windows.System.Launcher.LaunchFileAsync(stFile);
                }
            }
        }
    }
}

Output

Build and run the MAUI project. On successful execution, a window will open showing the content depicted in the image below.

Read, Create, and Edit Excel Files in .NET MAUI, Figure 1: Output

Figure 1 - Output

Clicking on the "Create Excel File" button will open a separate dialog window. This window prompts users to choose a location and a filename by which to save a new (generated) Excel file. Specify the location and filename as directed, and click OK. Afterward, another dialog window will appear.

Read, Create, and Edit Excel Files in .NET MAUI, Figure 2: Create Excel Popup

Figure 2 - Create Excel Popup

Opening the Excel file as directed in the popup will bring up a document as shown in the screenshot below.

Read, Create, and Edit Excel Files in .NET MAUI, Figure 3: Output

Figure 3 - Read and Modify Excel Popup

Clicking on the "Read and Modify Excel File" button will load the previously generated Excel file and modify it with the custom background and text colors that we defined in an earlier section.

Read, Create, and Edit Excel Files in .NET MAUI, Figure 4: Excel Output

Figure 4 - Excel Output

When you open the modified file, you'll see the following output with table of contents.

Read, Create, and Edit Excel Files in .NET MAUI, Figure 5: Modified Excel Output

Figure 5 - Modified Excel Output

Conclusion

This explained how we can create, read and modify Excel files in the .NET MAUI application using the IronXL library. IronXL performs very well and does all operations with speed and accuracy. It is an excellent library for Excel operations, outperforming Microsoft Interop, as it doesn't require any installation of the Microsoft Office Suite on the machine. In addition, IronXL supports multiple operations like creating workbooks and worksheets, working with cell ranges, formatting, and exporting to various document types like CSV, TSV, and more.

IronXL supports all project templates like Windows Form, WPF, ASP.NET Core, and many others. Refer to our tutorials for creating Excel files and reading Excel files for additional information about how to use IronXL.


Quick Access Links

Explore this How-To Guide on GitHub

The source code for this project is available on GitHub.

Use this code as an easy way to get up and running in just a few minutes. The project is saved as a Microsoft Visual Studio 2022 project, but is compatible with any .NET IDE.

How to Read, Create, and Edit Excel Files in .NET MAUI Apps

View the API Reference

Explore the API Reference for IronXL, outlining the details of all of IronXL's features, namespaces, classes, methods, fields, and enums.

View the API Reference

Frequently Asked Questions

What is IronXL?

IronXL is a C# .NET library designed for reading, writing, and manipulating Excel files. It allows users to create, read, and modify Excel documents without requiring external frameworks or third-party software.

How do I install IronXL in my .NET MAUI project?

You can install IronXL in your .NET MAUI project using the NuGet Package Manager Console in Visual Studio. Simply open the console and enter the command to install the IronXL library.

Can IronXL be used for creating Excel files in .NET MAUI?

Yes, IronXL supports creating Excel files in .NET MAUI. You can generate Excel documents from scratch and customize their content, appearance, and metadata with IronXL's intuitive APIs.

Is it possible to read and modify Excel files using IronXL in .NET MAUI?

Absolutely. IronXL allows you to load, read, and modify existing Excel files. You can apply formulas, set styles, and format cells directly in your .NET MAUI application.

Does IronXL require Microsoft Office to be installed?

No, IronXL does not require Microsoft Office to be installed on the machine. It is a standalone library that performs excellently without relying on external applications.

Can I view Excel files in the browser using IronXL in .NET MAUI?

IronXL allows you to save and export Excel files that can be opened and viewed in a browser or standard Excel application, enabling seamless integration into web workflows.

What file formats does IronXL support?

IronXL supports a variety of document formats including XLSX and lets users export their worksheets to other formats like CSV and TSV.

What are the benefits of using IronXL over Microsoft Interop?

IronXL provides several advantages over Microsoft Interop, including faster performance, no dependency on the Office Suite, and the ability to handle a range of tasks such as worksheet creation, cell formatting, and file exporting efficiently.

Is IronXL compatible with different .NET project templates?

Yes, IronXL is compatible with various .NET project templates including Windows Forms, WPF, and ASP.NET Core, among others.

Where can I find additional resources and tutorials for using IronXL?

You can find additional tutorials and resources for using IronXL on the official [Iron Software website](https://ironsoftware.com) and their GitHub repository, which includes sample projects and API references.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Ready to Get Started?

Nuget Downloads 2,237,574Version:2026.9just released

Get your FREE

30-day Trial Key instantly.

bullet_checkedNo credit card or account creation required
bullet_testTest in production
without watermarks
bullet_calendar30 days fully
functional product
bullet_support24/5 technical
support during trial
Get your free 30-day Trial Key instantly.
No credit card or account creation required
C# NuGet Library for PDF
Install with NuGet

Version: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. In Solution Explorer, right-click References, Manage NuGet Packages
  2. Select Browse and search "IronXL"
  3. Select the package and install
C# PDF DLL
Download DLL

Version: 2026.9

  1. Download and unzip IronXL to a location such as ~/Libs within your Solution directory
  2. In Visual Studio Solution Explorer, right click References. Select Browse, "IronXL.dll"

Licenses from $999

Key in blue circle

Get your free 30-day Trial Key instantly.

Your trial license will be sent to your email address

No limitations. 100% unlocked. No credit card.

bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Book your free Live Demo
Booking Badge

Trusted by Millions of Engineers Worldwide

Iron Software's customer logos
Get Your No-Obligation Consult
Complete the form below or email sales@ironsoftware.com
Your details will always be kept confidential.
Trusted by Millions of Engineers Worldwide
Iron Software's customer logos
Get your free 30-day Trial Key instantly.
No credit card or account creation required