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

Convert Excel worksheet to image in Xamarin.iOS

Platform: Xamarin.iOS |
Control: XlsIO

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.

 

 

2X faster development

The ultimate Xamarin 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