6 Ways to Open Excel Files on Raspberry Pi (apps, coding, and more)


Reading Excel files on a Raspberry Pi can be a necessary part of data collection and manipulation. Excel itself is not available for Raspberry Pi, but in this guide I’ve explored a variety of alternatives. These alternatives to Excel for Raspberry Pi allow you to open .xlsx files, read data, and do some analysis – important tasks for a Raspberry Pi.

Excel files can be opened on a Raspberry Pi using LibreOffice, Gnumeric, or by using a web browser to access Office 365 and Google Sheets. Data inside an Excel file can also be read or modified using Python on Raspberry Pi, which has libraries to manipulate Excel files. A Raspberry Pi can also convert an Excel file to a CSV file that can be used in other applications.

Open Excel files using these tools (I tested them out, see below for details)

I’ve judged these options based on my use-case of extracting data from .xlsx files. By extracting the data from an .xlsx file, we can do analysis of that data using a Raspberry Pi (though by using other tools, such as Python). I also considered saving data to an .xlsx file (so we can analyse it on a desktop computer), and basic graphs and charts for comparison’s sake.

Interested in more ways to store data with a Raspberry Pi? I wrote a whole guide on the various ways to store data with Raspberry Pi. Check it out here: chipwired.com/raspberry-pi-store-data/

1. LibreOffice Calc

LibreOffice is a free open-source office software package designed as an alternative to Microsoft office products. It includes tools to work with documents, spreadsheets, and slide shows. The spreadsheet tool is called Calc.

A list of the features I tried out with LibreOffice Calc is included in the table below:

FeatureLibreOffice Calc
Read data from .xls and .xlsxYes
Write data to .xls and .xlsxYes
Graphs and chartsYes
Pivot tablesBasic support (and no pivot charts)
Features of LibreOffice Calc

I also found LibreOffice Calc performed well on the Raspberry Pi – the interface was responsive and menus were relatively easy to navigate. It was good for basic data analysis tasks such as filtering and graphing, though I did find that there were better alternatives out there (particularly if you’re comfortable coding); I wrote a whole guide on analyzing data with Raspberry Pi, check it out here: chipwired.com/analyze-data-raspberry-pi/

Disadvantages of LibreOffice Calc (compared to Microsoft Excel):

  • Different formula syntax (so some formulas may not calculate at all)
  • No comments on cells
  • No macros
  • Only basic support for pivot tables
  • No pivot charts

Some formatting differences also appeared when I opened an Excel file in LibreOffice Calc, as compared to the original in Microsoft Excel.

LibreOffice running on my Raspberry Pi (using Ubuntu)

To install LibreOffice Calc:

  • Check that it might already be installed (I found LibreOffice already installed on my Raspberry Pi thanks to the Ubuntu Desktop operating system I was running)
  • Use the instructions here to install if it isn’t already

2. Microsoft 365 Excel

A Raspberry Pi can use the online version of Excel that Microsoft offers as part of its subscription Office plans. The online version of Excel runs in a web browser and can be used to read and modify .xlsx and .xls files. Some features are missing compared to the desktop version of Excel. Microsoft Excel 365 is the only paid tool on this list and costs approximately $70 per year to use.

I tried the following functions of online Excel using my Raspberry Pi:

FeatureMS 365 Excel
Read data from .xls and .xlsxYes
Write data to .xls and .xlsxYes
Graphs and chartsYes
Pivot tablesYes
Features of Microsoft 365 Excel

Some missing features of Microsoft 365 Excel (compared to desktop Excel) include:

  • Limited formatting options, and no conditional formatting
  • Some formulas are unavailable
  • No find and replace
  • While graphs and charts are supported, some advanced features are not

I also felt the user interface wasn’t particularly responsive, it felt laggy and slow to use. I’ve had the same experience using Microsoft 365 Excel on a powerful laptop, so I think it’s a side-effect of having such a feature-rich interface that must be complicated for the computer to run.

My Raspberry Pi running Microsoft 365 Excel in the Firefox web browser

To use Microsoft 365 Excel on Raspberry Pi:

  • A Microsoft subscription is required, plans can be found here
  • Open a web browser on your Raspberry Pi (I found Chrome-based browsers to work the best, however I tested everything in this guide with Firefox)
  • Log in to Microsoft Online and select the Excel logo
  • Upload a file, or open one already saved in the Microsoft cloud
  • Download the file when finished if you want to save a copy on your Raspberry Pi

3. Python openpyxl

Python, a programming language and environment which works well on Raspberry Pi, has a library that allows easy manipulation of .xlsx files. All manipulation of the data in the .xlsx file is done by writing Python code. I’ve found this a really powerful way for a Raspberry Pi to analyse data stored in an .xlsx file. Python and openpyxl are free tools to use.

If you’ve used Panadas to work with .xlsx files before, you’ll be familiar with the features of openpyxl (both libraries run on Raspberry Pi). Features include:

FeaturePython openpyxl
Read data from fileYes (.xlsx only)
Write data to fileYes (.xlsx only)
Graphs and chartsBy coding
Pivot tablesBy coding
Features of Python openpyxl

Python is amongst the most powerful data analysis, graphing and charting tools I’ve ever used. Once you’ve picked up coding, analysing data using “pivot tables” or displaying data in graphs and charts is really powerful, and repeatable.

To install and use openpyxl on Raspberry Pi:

  • Install python3 and pip (the Python package installer) with the command: sudo apt install python3 pip
  • Install openpyxl using pip with this command: sudo pip install openpyxl
  • Open the Python interpreter using the python3 command
  • Import openpyxl and start using the library (see below)
Reading an Excel sheet using Python

There’s an extensive reference on how to use openpyxl on their website here. Examples are included about how to open a .xlsx file, read from it, write to it, or create a new .xlsx file.

If you have Pandas installed, it can also be used to open .xlsx files. Details of how that works are available in their reference material here. I believe Pandas uses openpyxl under the hood.

4. Google Sheets

Google Sheets is Google’s online spreadsheet tool. It can be accessed from anywhere with a decent internet connection and a modern web browser. Google Sheets is currently a free tool for personal use.

Raspberry Pi can access Google Sheets using its Chromium based browser, or by using an alternative browser such as Firefox. The full functionality of Google Sheets is available, including the ability to upload files from the Raspberry Pi, and to download and save files to the Raspberry Pi.

I found Google Sheets performed well when tested against the feature set I used for comparison in this guide:

FeatureGoogle Sheets
Read data from .xls and .xlsxYes
Write data to .xls and .xlsxYes
Graphs and chartsYes
Pivot tablesYes
Features of Google Sheets

User Interface performance though was lacking a bit. It felt a little slow and unresponsive at times. This is likely not the Raspberry Pi’s fault though as I’ve often had the same experience when using Google Sheets on my work laptop. Using a Chromium-based browser makes it a little faster, though it’s still not as smooth as running an app on the computer itself (such as the desktop version of Excel).

Short-comings of Google Sheets (compared to Excel):

  • Less charts and visualisation options available
  • Less formula keywords that can be used
  • Less macro and programmability support
Google Sheets running on my Raspberry Pi

To use Google Sheets on Raspberry Pi:

  • A Google account is required, if you don’t have one already you will be prompted to create one when accessing Sheets
  • Open a web browser on your Raspberry Pi (I found Chrome-based browsers to work the best, however I tested Sheets with Firefox)
  • Log in to Google Sheets here
  • Create a new spreadsheet by clicking “Blank”, or click the folder icon, then click upload to add a file from the Raspberry Pi to Google Sheets
  • An open file can be downloaded back to the Raspberry Pi using the File -> Download menu when the file is open

5. Convert to CSV with ssconvert

Ssconvert is a tool which can convert .xlsx files to CSV files. CSV is a simpler file format; this simplicity means it is easier to access data for other tools to analyse, but also means it cannot support formulas or save graphs within the file. CSV stands for Comma Separated Value. Ssconvert is a free tool as part of the Gnumeric package.

Raspberry Pi can run ssconvert to convert .xlsx files to .csv files. Once converted, Raspberry Pi also has a lot of tools for working with CSV, including any of the apps I’ve listed in this guide, as well as programming languages such as Python.

Converting to CSV files is useful when you want to read the data in a different app or programming language that doesn’t support .xlsx (or is too difficult to use .xlsx in). Any analysis, graphs, visualisations, or other data techniques must be performed in another app – CSV is a very basic file format. Features of this approach include:

FeatureConvert to CSV
Read data from fileYes (only .xlsx)
Write data to .xls and .xlsxNO
Graphs and chartsNO
Pivot tablesNO
Features when converting .xlsx to CSV

When converting to CSV, you will not be able:

  • Save any charts or graphs to the file
  • Save any formulas or analysis to the file
  • Save formatting to the file

If you try to do these tasks, the app will prompt you to use a different file type.

To install ssconvert:

  1. Open up a Terminal
  2. Type the following command to update your package manager: sudo apt update
  3. Type this command to install ssconvert (it comes as part of the Gnumeric package): sudo apt install gnumeric
  4. Use this command to convert .xlsx to .csv: ssconvert file_in.xlsx file_out.csv

The image below is an example of how I converted an .xlsx file to .csv:

Example conversion from .xlsx to .csv

6. Gnumeric

Gnumeric is a free open-source spreadsheet and calculation tool intended to provide a basic alternative to Microsoft Excel. It is intended to provide similar graphing, formula and calculation support as Excel, though it does not support analysis tools such as pivot tables.

Raspberry Pi can run Gnumeric and use it to open .xlsx files. Gnumeric can be downloaded and installed using a package manager, and it supports .xlsx files out of the box.

I found the feature set of Gnumeric comparable to LibreOffice Calc. From what I could tell, Gnumeric has slightly better formula support, however it lacks pivot tables entirely. Features include:

FeatureGnumeric
Read data from file (.xls and .xlsx)Yes
Write data to file (.xls and .xlsx)Mostly
Graphs and chartsYes
Pivot tablesNO
Features of Gnumeric

I saw reports that Gnumeric doesn’t fully support writing to .xlsx files. However I never noticed an issue in my simple examples. Overall, I wouldn’t trust Gnumeric to write to an .xlsx file if that file needs to be opened in Excel in the future.

Other features that are not available include:

  • Saving formatting information about cells
  • Advanced charting tools
  • VBA and macros
Gnumeric running on my Raspberry Pi

To install Gnumeric on Rasbperry Pi:

  1. Open Terminal and type the following command to update your package manager: sudo apt update
  2. Type the following command to install Gnumeric: sudo apt install gnumeric
  3. Run Gnumeric with the command: gnumeric
  4. Open an .xlsx file and start using

I didn’t really find any advantages of Gnumeric compared to LibreOffice, which is why it’s last on my list.

Chris comes from an electronics and data analysis background. He’s working hard to combine the two and explore how using Raspberry Pi and Arduino for data collection, data analysis, and data visualisation can add value in people’s lives.

Chris

Engineer and electronics enthusiast. Enjoys solving problems with electronics and programming.

Recent Posts