How to Create an Excel File in Xamarin.Android?
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.Android.
Steps to create an Excel file programmatically:
Step 1: Create a new C# Xamarin Android application project.
Create a new C# Xamarin Android App
Step 2: Select a project template and minimum Android version for the application.
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.
Install NuGet package
Step 4: In Main.axml, add the new button and define the click event to generate the Excel file.
i) In Main.axml page, add the following code to add the button
AXML
<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 to generate the Excel file:
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 the first worksheet from the workbook instance. IWorksheet worksheet = workbook.Worksheets[0]; // Add text to a cell worksheet.Range["A1"].Text = "Hello World"; // Save the workbook to a 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 the class is given below.
C#
class SaveAndroid { // Method to save the 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 the 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 the file if it 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 application. Now this application creates a simple Excel document.
For the Excel document to be read and written on the Android device, the storage permission must be given for the deployed application. To read/write to the external storage location, enable the required permissions in the Android Manifest.
Enable permissions in Android Manifest
A complete working example to create an Excel file in Xamarin.Android 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.
Conclusion
I hope you enjoyed learning about how to create an Excel file in Xamarin.Android.
You can refer to our XIsIO’s feature tour page to learn about its other groundbreaking features. Explore our UG documentation and online demos to understand how to manipulate data in Excel documents.
If you are an existing user, you can access our latest components from the License and Downloads page. For new users, you can try our 30-day free trial to check out XlsIO and other Syncfusion® components.
If you have any queries or require clarification, please let us know in the comments below or contact us through our support forums, Support Tickets, or feedback portal. We are always happy to assist you!