Modifying the contents of an Excel spreadsheet

We need to be able to open an Excel spreadsheet programmatically, modify data inside the spreadsheet cells, and save the spreadsheet changes. This must be cross-platform and not be dependent on MS Office being installed.

The Xojo plugins (in my experience) only work on Windows and probably require MS Office installed.

Einhugur has ExcelReader and ExcelWriter plugins which I have and use, but they only do what’s on the label, i.e. read-only or write-only.

The MonkeyBread plugin would (I imagine) do the trick, but it’s expensive and probably overkill for this project.

Any other suggestions?

Can you specify the version format of the Excel files or must they be the older binary files? The newer ones are (mostly) just XML files inside a ZIP file package with the xlsx extension, so you might be able to get away with making small changes using XML and ZIP libraries, if your needs are relatively simple.

What about using an ODBC driver to treat Excel as a database. It works on Windows and Actual Technologies also makes an ODBC driver for Access that is supposed to also work with Excel. I know you can use a SELECT like this to pull data from a Sheet called “Teams”:

SELECT * FROM [Teams$]

INSERT, UPDATE probably work as well.

This is briefly covered in the Using ODBC video I did last week.

ODBC is total overkill. A modern Excel file is xml. If your changes are very simple you could get away with direct manipulation of the xml.

Have You tryed Einhugur’s ExcelReader Component 1.3 & ExcelWriter Plugin 1.5. You finde it at
http://einhugur.com/Html/all.html

You could check our MBS Xojo XL Plugin.
It offers a lot of options and can read/write older and newer Excel files without having Microsoft Excel installed.

according to my experience, i suggest you not to waste time looking for options and simply use MBS Xojo XL Plugin. it just works perfect and is worth every penny invested.

I think the link for the other component that you need was not working

I own the MBS Xojo XL plugin. The LibXL license was a little expensive up front, but in the long run has saved me thousands of dollars not spending time and money working on solutions with other cheaper, inferior methods. Well worth it, after it was all said and done.

What I miss is the former MBS Real Studio XLS Plugin.rbx support. In fact just the other day wanted to modify an old project that uses it for a very simplistic parsing of an *.xls file. And had to step back to Xojo 2016 R4.1 to make it load. (At least of the versions of Xojo which are still installed on my machine. Maybe it is compatible with versions after that.)

True, it does not have near the features of the XL Plugin, but for simple needs to quickly read the contents of an *.xls it was great. If I had to deal with both *.xls and *.xlsx more often, I’d spring for the LibXL platform licenses. But there are times I miss the simplistic support of the old XLS plugin.

We have decided to use the MBS plugin solution. As someone pointed out, it just works. Thanks to those who responded.

It also requires a license for LibXL on each platform or an enterprise license or am I wrong?

My understanding it that is correct. The initial license is $199 USD per platform, which includes one year of updates but can be used perpetually with no runtime restrictions. Then additional years can be purchased for $99 USD per platform.

However, it appears the initial $199 USB per platform would let you use it in as many projects as you want, royalty free and perpetually. Plus any LibXL updates released within a year of the license date.

Or that is my take anyway; I haven’t bit this particular bullet yet.

It’s $199 per platform and developer.

So if you have more than a few platforms and developers, it multiplies. The enterprise license is the upper limit for bigger companies.

see also
https://www.monkeybreadsoftware.de/xojo/libxl.shtml