I can recommend Gnumeric.
Gnumeric is an open-source spreadsheet program. Gnumeric is...
- Free: Gnumeric and its source code are available free of charge, licensed under the terms of the GNU General Public License version 2 or version 3.
- Fast: Gnumeric starts up quickly and handles large spreadsheets while remaining responsive.
- Accurate: A spreadsheet should calculate the right answer. Gnumeric's built-in functions and tools are accurate, as several researchers have found.
To install:
sudo apt update
sudo apt install gnumeric


I can recommend Gnumeric.
Gnumeric is an open-source spreadsheet program. Gnumeric is...
- Free: Gnumeric and its source code are available free of charge, licensed under the terms of the GNU General Public License version 2 or version 3.
- Fast: Gnumeric starts up quickly and handles large spreadsheets while remaining responsive.
- Accurate: A spreadsheet should calculate the right answer. Gnumeric's built-in functions and tools are accurate, as several researchers have found.
To install:
sudo apt update
sudo apt install gnumeric


pyspread
python FTW

Description from pyspread‘s homepage
Pyspread is a non-traditional spreadsheet application that is based on and written in the programming language Python.
The goal of pyspread is to be the most pythonic spreadsheet.
Pyspread expects Python expressions in its grid cells, which makes a spreadsheet specific language obsolete. Each cell returns a Python object that can be accessed from other cells. These objects can represent anything including lists or matrices.
Pyspread is free software. It is released under the GPL v3. You can find the sorce code at github.
Installation
sudo apt install pyspread
You can also use this:
column -s, -t < somefile.csv | less -#2 -N -S
column is a standard unix program that is very convenient -- it finds the appropriate width of each column, and displays the text as a nicely formatted table.
Note: whenever you have empty fields, you need to put some kind of placeholder in it, otherwise the column gets merged with following columns. The following example demonstrates how to use sed to insert a placeholder:
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
Note that the substitution of ,, for , , is done twice. If you do it only once, 1,,,4 will become 1, ,,4 since the second comma is matched already.
You can install csvtool (on Ubuntu) via
sudo apt-get install csvtool
and then run:
csvtool readable filename | view -
This will make it nice and pretty inside of a read-only vim instance, even if you have some cells with very long values.