Oleo: a commandline spreadsheet

Oleo features a curses based interface (character mode), but also a LessTif (Motif) based graphical user interface. If you feel a small jump of joy and say, “Hey, that’s VisiCalc!” … then Oleo is for you. Or at least you won’t be intimidated by it, which is the important part.  One thing Oleo has going for it is extremely detailed documentation, which is a huge boost, considering it is a fairly complex application with a bit of a learning curve.

I found Oleo in the Ubuntu repositories, but I had to build it from source for openSuse.  I was unable to check it’s availability in Fedora.


Once installed if you open Oleo in a terminal emulator, append the command with an -x flag. This will force it into ncurses (non-graphic) mode, rather than defaulting to its sparse X version,

When you start the application you’ll be in the top left corner of the spreadsheet by default, so start typing. Press enter when you’re done.

You’ll notice Oleo is behaving a lot like it’s 8-bit counterparts, and if you remember the old days of text-mode spreadsheets, you might realize that the problem is that Oleo thinks you’re giving it a variable or something. You didn’t tell Oleo you wanted to give it plain old text. Press the backspace key to erase what you did, and re-enter it. This time, enclose it in quotes.

Numbers are easier than text: You just type them in. On the other hand, if you go back to edit them you’ll realize that just typing over top of the old number isn’t the way it’s done. Overwriting isn’t done by default — instead, you append it. Which is either good or bad, depending. It’s a little unnerving at first, but it does make things easier at times.

Note that by default, Oleo doesn’t label its cells in the now-conventional method of A2, C8, B223 or what have you. Instead, it’s row-column, for each one. That has its benefits, but it’s not easy to get used to. Either way, what you enter by default needs to look like r3c3 * r3c4, otherwise Oleo will have a fit. Yes, it is possible to switch to the conventional labeling.

It can do sums too. The protocol for a sum is typical:  sum(start.finish), with start and finish being the … start and finishing cells, of course. Such as:  sum(r3c5.r6c5).

You can convert number values to two decimal places or even a dollar amount by default, right-align everything, stretch and fit the columns appropriately. Oleo does all that, and quite handily. And it does a lot more than that. One thing I learned about Oleo in the brief time I got acquainted with it, is that it’s every bit as powerful as the graphical spreadsheet du jour, and probably better suited to some of the hard-core number-crunching tasks than graphical spreadsheets are.

Like I said, this barely brushes with the innate beauty of Oleo. If you really, really want to get into it, dive into the full documentation, and then you’ll really have an appreciation for it. Oleo proves that a console application doesn’t have to be sparse. It just looks sparse.

Related Posts

Tags: , ,

Leave a Reply