Articles in this section
Category / Section

Convert Excel worksheet to image in Xamarin.iOS

3 mins read

Syncfusion Essential XlsIO is a .NET Excel library used to create, read, and edit Excel documents. Using this library, you can convert Excel worksheet to image in Xamarin.iOS.

Steps to convert Excel worksheet to image programmatically:

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

Graphical user interface, text, application, email

Description automatically generated

  1. Select a project template and select minimum iOS version and Device Support for the application. Graphical user interface, application

Description automatically generated
  2. Install Syncfusion.Xamarin.XlsIORenderer , Syncfusion.Xamarin.Pdf and SkiaSharp NuGet packages as a reference to the .NET Standard project in your Xamarin applications from NuGet.org.
  1. In project add new UIViewController class.

Graphical user interface, application

Description automatically generated

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

//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.

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);
  1. Include the following namespace in the UIViewController1.cs file.
    using Syncfusion.XlsIO;
    
  1. In the click event method (OnButtonClicked) add the following code to create an Excel file and save it in a stream.
    //Create an instance of ExcelEngine.
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
       IApplication application = excelEngine.Excel;
       //Set the default application version as Excel 2013.
       application.DefaultVersion = ExcelVersion.Excel2013;
     
       Assembly executingAssembly = typeof(UIViewController1).GetTypeInfo().Assembly;
       Stream inputStream = executingAssembly.GetManifestResourceStream("Blank.sample.xlsx");
     
       IWorkbook workbook = application.Workbooks.Open(inputStream);
     
       //Access first worksheet from the workbook instance.
       IWorksheet worksheet = workbook.Worksheets[1];
     
       // Initialize XlsIORenderer
       application.XlsIORenderer = new XlsIORenderer();
     
       //Create a new memory stream to save the image
       MemoryStream stream = new MemoryStream();
     
       //Convert worksheet to image and save it to stream.
       worksheet.ConvertToImage(worksheet.UsedRange, stream);
     
       workbook.Close();
     
       //Save the stream as a file in the device and invoke it for viewing
       SaveIOS saveIOS = new SaveIOS();
       saveIOS.SaveAndView("output.png", "image/png", stream);
    }
    
  1. 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.

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).

 

  1. Compile and execute the application. Now this application converts a simple Excel document to image.

A complete working example to convert Excel worksheet to image in Xamarin.iOS can be downloaded from Worksheet-to-Image.zip.

By executing the program, you will get the Excel file as follows.

Excel

Know more about Essential XlsIO through the documentation, where you can find more information of Worksheet to Image conversion with respective code examples and prerequisite.

Refer here to explore the rich set of Syncfusion Essential XlsIO features.

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 to link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.

 

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied