How to create an Excel file in Xamarin.iOS?
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 a new C# Xamarin iOS App
Step 2: Select a project template and select minimum iOS version and Device Support for the application.
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.
Install NuGet package
Step 4: In project add new UIViewController class.
Add new UIViewController class
i)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();
ii)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); } }
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
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.