ANDROID EXCEL APP
Android Excel App: How to Read, Write, and Edit Excel Files on Android
Excel files are one of the most commonly used formats for storing tabular data. Whether it’s for business, education, or personal purposes, you may often need to access and manipulate Excel files (.xls, .xlsx) on your Android devices. Fortunately, Android offers several ways to work with Excel files in your mobile apps, ranging from using third-party libraries to integrating online tools.
In this article, we’ll cover the essential steps to create an Android app that can read, write, and edit Excel files using popular libraries such as Apache POI and Android's Excel-related APIs.
Why Use an Excel App on Android?
Using Excel files on Android devices offers numerous benefits:
- Portability: Access and edit Excel files while on the go.
- Productivity: Carry your data and perform analysis or calculations without a computer.
- Ease of Access: Excel files are widely used, and being able to view or update them directly from an Android device can improve workflow.
Key Features of an Android Excel App
An Android Excel app can have the following features:
- Reading Excel Files: View the contents of Excel files, including text, numbers, dates, and formulas.
- Editing Excel Files: Modify the contents of Excel files (e.g., add data, change values, or format cells).
- Saving Excel Files: Save modified Excel files back to the device or cloud storage.
- File Creation: Create new Excel files from scratch or using predefined templates.
Android Libraries for Working with Excel Files
To handle Excel files in Android, you typically use libraries designed to parse and manipulate these file formats. Two of the most popular libraries for this are Apache POI and xlsx.
1. Apache POI
Apache POI is a Java library that provides APIs for working with Microsoft Office formats, including Excel (both .xls and .xlsx). It’s a versatile library, capable of reading, writing, and modifying Excel files in Android apps.
2. xlsx (Java Excel API)
The xlsx library is another option for handling Excel files. It is a more lightweight alternative and is often used when you need only basic Excel file manipulation.
Setting Up the Android Project
For this tutorial, we'll use the Apache POI library, as it's the most widely used and robust solution. We'll go through setting up a simple Android app that can read and write Excel files.
Step 1: Setting Up Dependencies
- Add the Apache POI dependency in your
build.gradlefile. Open thebuild.gradle(Module: app) file and add the following dependencies under thedependenciessection:
implementation 'org.apache.poi:poi-ooxml:5.2.3' // Latest version
implementation 'org.apache.poi:poi-ooxml-schemas:5.2.3' // Latest version
This will add the necessary Apache POI libraries to read and write .xlsx files. If you’re working with older .xls files, you can also include:
implementation 'org.apache.poi:poi:5.2.3'
Step 2: Create Layout for the Excel App
In your app's activity_main.xml, set up a basic layout to load and display Excel file contents. Here's an example layout with a Button to load an Excel file and a TextView to display the results:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/btnLoadExcel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load Excel File" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Excel Content"
android:layout_marginTop="20dp"
android:scrollbars="vertical"
android:maxHeight="400dp"
android:layout_marginTop="16dp"/>
</LinearLayout>
This layout contains:
- A
Buttonfor loading the Excel file. - A
TextViewto display the contents of the Excel file.
Step 3: Code to Read and Write Excel Files
Now let's move to the main activity and implement the logic for reading Excel files.
- Open
MainActivity.javaand write the code for reading and displaying the contents of an Excel file.
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.activity.result.contract.ActivityResultContracts;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Button btnLoadExcel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
btnLoadExcel = findViewById(R.id.btnLoadExcel);
// Set up the button to open the file picker
btnLoadExcel.setOnClickListener(v -> openFilePicker());
}
// Launches the file picker to choose an Excel file
private void openFilePicker() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // Excel file type
startActivityForResult(intent, 1);
}
// Handle the result when the user selects a file
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null) {
Uri uri = data.getData();
readExcelFile(uri);
}
}
// Method to read the Excel file
private void readExcelFile(Uri uri) {
try (InputStream inputStream = getContentResolver().openInputStream(uri)) {
// Create a workbook object
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0); // Get the first sheet
Iterator<Row> rowIterator = sheet.iterator();
StringBuilder sb = new StringBuilder();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
sb.append(cell.toString()).append(" | ");
}
sb.append("\n");
}
// Display the contents of the Excel file in the TextView
textView.setText(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Explanation of Code:
- We use
Intent.ACTION_GET_CONTENTto open the file picker dialog and let the user select an Excel file. - Once the user selects a file, the
onActivityResult()method gets called, where we retrieve the file URI and pass it toreadExcelFile(). - Inside
readExcelFile(), we use Apache POI (XSSFWorkbookandWorkbookclasses) to read the Excel file. We iterate through the rows and cells and build aStringBuilderto display the contents in aTextView.
Step 4: Save or Modify Excel Files
To write or modify Excel files, you can use the Workbook and Sheet classes provided by Apache POI. Here's a simple method to create and save a new Excel file:
private void createExcelFile() {
try {
// Create a new workbook and sheet
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
// Create a row and add data
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("Name");
row.createCell(1).setCellValue("Age");
// Add another row with data
Row row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("Alice");
row2.createCell(1).setCellValue(30);
// Save the file to the device storage
FileOutputStream fileOut = new FileOutputStream("/path/to/your/excel_file.xlsx");
workbook.write(fileOut);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Conclusion
By following the above steps, you can easily create an Android Excel app that allows users to:
- Open Excel files (.xlsx).
- Read and display their contents.
- Create new Excel files or modify existing ones.
Apache POI is a powerful library that makes interacting with Excel files seamless in Android. You can extend this further by adding additional features like writing to specific cells, formatting data, or saving files to different locations like cloud storage (Google Drive, Dropbox, etc.).
Remember, working with large Excel files can consume significant memory, so always consider performance optimization and resource management in real-world apps.

0 Comments