We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How to create an Excel file in Xamarin.iOS?

Platform: WinForms |
Control: XlsIO |
Published Date: August 6, 2018 |
Last Revised Date: April 16, 2019

Syncfusion Excel (XlsIO) library is a .NET Excel library used to create, read, and edit Excel documents. Using this library, you can start creating an Excel document in Xamarin.iOS.

Steps to create Excel file programmatically:

Step 1: Create a new C# Xamarin iOS application project.

Create Xamarin.iOS application in Visual Studio

Create a new C# Xamarin iOS App

Step 2: Select a project template and select minimum iOS version and Device Support for the application.

Select Xamarin.iOS project template and iOS version

Select minimum iOS version

Step 3: Install Syncfusion.Xamarin.XlsIO NuGet package as a reference to the .NET Standard project in your Xamarin applications from NuGet.org.

Add XlsIO reference to the project

Install NuGet package

Step 4: In project add new UIViewController class.

Add new UIViewController class to the project

Add new UIViewController class

  1. In AppDelegate.cs add the following code on FinishedLaunching() to load the UIViewController1 at top of the window.

C#

//Load the UIViewController for UI Window
Window.RootViewController = new UIViewController1();

 

  1. In UIViewController1.cs add the following code in the ViewDidLoad() method to add the button in the UIView.

C#

var btn = UIButton.FromType(UIButtonType.System);
btn.Frame = new CoreGraphics.CGRect(20, 200, 280, 44);
btn.SetTitle("Generate Excel Document", UIControlState.Normal);
btn.TouchUpInside += OnButtonClicked;
View.AddSubview(btn);

 

Step 5: Include the following namespace in the UIViewController1.cs file.

C#

using Syncfusion.XlsIO;

 

Step 6: In the click event method (OnButtonClicked) add the following code to create an Excel file and save it in a stream.

C#

//Create an instance of ExcelEngine.
using (ExcelEngine excelEngine = new ExcelEngine())
{
  //Set the default application version as Excel 2013.
  excelEngine.Excel.DefaultVersion = ExcelVersion.Excel2013;
 
  //Create a workbook with a worksheet
  IWorkbook workbook = excelEngine.Excel.Workbooks.Create(1);
 
  //Access first worksheet from the workbook instance.
  IWorksheet worksheet = workbook.Worksheets[0];
 
  //Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";
 
  //Save the workbook to stream in xlsx format. 
  MemoryStream stream = new MemoryStream();
  workbook.SaveAs(stream);
 
  workbook.Close();
 
  //Save the stream as a file in the device and invoke it for viewing
  SaveIOS saveIOS = new SaveIOS();
  saveIOS.SaveAndView("GettingStared.xlsx", "application/msexcel", stream);
}

 

Step 7: Add the SaveIOS class to the project where the stream will be saved to a physical file and the file can be opened for viewing.

The code for SaveIOS class has been given below.

C#

class SaveIOS
{
  //Method to save document as a file and view the saved document
  public async Task SaveAndView(string filename, string contentType, MemoryStream stream)
  {
    //Get the root path in iOS device.
    string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
    string filePath = Path.Combine(path, filename);
 
    //Create a file and write the stream into it.
    FileStream fileStream = File.Open(filePath, FileMode.Create);
    stream.Position = 0;
    stream.CopyTo(fileStream);
    fileStream.Flush();
    fileStream.Close();
 
    //Invoke the saved document for viewing
    UIViewController currentController = UIApplication.SharedApplication.KeyWindow.RootViewController;
    while (currentController.PresentedViewController != null)
        currentController = currentController.PresentedViewController;
    UIView currentView = currentController.View;
 
    QLPreviewController qlPreview = new QLPreviewController();
    QLPreviewItem item = new QLPreviewItemBundle(filename, filePath);
    qlPreview.DataSource = new PreviewControllerDS(item);
 
    currentController.PresentViewController(qlPreview, true, null);
  }
}

 

Note:

To preview the Excel document in QuickLook, PreviewControllerDS, QLPreviewItemFileSystem and QLPreviewItemBundle classes have to be added in the project. The code for these helper classes can be found from this link (iOS -> PreviewControllerDS.cs).

Step 8: Compile and execute the application. Now this application creates a simple Excel document.

A complete working example to create Excel file in Xamarin iOS can be downloaded from Create Excel file.zip.

Take a moment to peruse the documentation, where you can find basic worksheet data manipulation options along with features like Conditional Formatting, worksheet calculations through Formulas, adding Charts in worksheet or workbook, organizing and analyzing data through Tables and Pivot Tables, appending multiple records to worksheet using Template Markers, and most importantly PDF and Image conversions etc. with code examples.

Refer here to explore the rich set of Syncfusion Excel (XlsIO) library features.

An online sample link to generate Excel file.

See Also:

Create a Excel file in ASP.NET MVC

Create a Excel file in ASP.NET Core

Create a Excel file in Windows Forms

Create a Excel file in WPF

Note:

Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer the link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile