Articles in this section
Category / Section

Excel reader for Android

3 mins read

Syncfusion Excel (XlsIO) library is a .NET Excel library used to create, read, and edit Excel documents. In this article, we can see how to read Excel in Android.

Steps to create Excel reader for Android programmatically:

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

Create Xamarin.Android application in Visual Studio

Create a new C# Xamarin Android App

Step 2: Select a project template and minimum android version for the application.

Select Xamarin.Android project template and android version

Select minimum android 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 Main.xaml add the new button and define the click event of Excel reader for Android.

i)In Main.xaml page add the following code to add the button

XAML

<Button
   android:id="@+id/MyButton"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
/>

 

ii)In MainActivity.cs file add the following code to define the click event of Excel reader for Android.

C#

protected override void OnCreate(Bundle savedInstanceState)
{
  base.OnCreate(savedInstanceState);
 
  // Set our view from the "main" layout resource
  SetContentView(Resource.Layout.activity_main);
 
  Button button = FindViewById<Button>(Resource.Id.MyButton);
  button.Text = "Create Excel";
  button.Click += OnButtonClicked;
}

 

Step 5: Include the following namespace in the MainActivity.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#

void OnButtonClicked(object sender, EventArgs args)
{
  //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
    SaveAndroid androidSave = new SaveAndroid();
    androidSave.SaveAndView("CreateExcel.xlsx", "application/msexcel", stream,this);
  }
}

 

Step 7: Add the SaveAndroid 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 SaveAndroid class has been given below.

C#

class SaveAndroid
{
  //Method to save document as a file in Android and view the saved document
  public async Task SaveAndView(string fileName, String contentType, MemoryStream stream, AppCompatActivity activity)
  {
    string root = null;
    //Get the root path in android device.
    if (Android.OS.Environment.IsExternalStorageEmulated)
    {
      root = Android.OS.Environment.ExternalStorageDirectory.ToString();
    }
    else
        root = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
 
    //Create directory and file 
    Java.IO.File myDir = new Java.IO.File(root + "/Syncfusion");
    myDir.Mkdir();
 
    Java.IO.File file = new Java.IO.File(myDir, fileName);
 
    //Remove if the file exists
    if (file.Exists()) file.Delete();
 
    //Write the stream into the file
    FileOutputStream outs = new FileOutputStream(file);
    outs.Write(stream.ToArray());
 
    outs.Flush();
    outs.Close();
 
    //Invoke the created file for viewing
    if (file.Exists())
    {
      Android.Net.Uri path = Android.Net.Uri.FromFile(file);
      string extension = Android.Webkit.MimeTypeMap.GetFileExtensionFromUrl(Android.Net.Uri.FromFile(file).ToString());
      string mimeType = Android.Webkit.MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
      Intent intent = new Intent(Intent.ActionView);
      intent.AddFlags(ActivityFlags.NewTask);
      intent.SetDataAndType(path, mimeType);
      activity.StartActivity(Intent.CreateChooser(intent, "Choose App"));
    }
  }
}

 

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

Note:

For the Excel document to be read and written in the android device, the storage permission must be given for the deployed application. To read/write with the external storage location enable the required permissions in Android Manifest.

Read and Write permissions enabled for Xamarin.Android application

Enable permissions in Android Manifest

A complete working example of Excel reader for Android can be downloaded from Excel reader for Android.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 an Excel file in ASP.NET Core

Create an Excel file in ASP.NET MVC

Create an Excel file in ASP.NET Web Forms

Create an Excel file in WPF

Create an Excel file in UWP

Create an Excel file in Xamarin

Create an Excel file in Xamarin.iOS

Create an Excel file in Azure platform

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

 

 

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