Is it possible to access Excel spreadsheets through ruby?
If so is there somewhere a code example I can have a look at?
Thanks,
Bernd
require 'win32ole'
#application = WIN32OLE.new('Excel.Application.5')
application = WIN32OLE.new('Excel.Application')
application.visible = TRUE
workbook = application.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.Range("A1:D1").value = ["North","South","East","West"];
worksheet.Range("A2:B2").value = [5.2, 10];
worksheet.Range("C2").value = 8;
worksheet.Range("D2").value = 20;
range = worksheet.Range("A1:D2");
range.Select
chart = workbook.Charts.Add;
workbook.saved = TRUE;
application.ActiveWorkbook.Close(0);
application.Quit();
--
John Maclean
MSc (DIC)
07739 171 531
If the machine in question is a Windows box with Excel already installed, your
best bet is probably using Win32OLE and accessing an Excel interface via COM.
Best look at Win32OLE, and Windows / Excel automation docs.
http://www.rubygarden.org/ruby?ScriptingExcel looks like good introductory
sample code too.
If not, I can only recall a writer package that worked with the binary format,
and I had mixed success getting it run on and off Cygwin. There might be
something out there that will let you read the zipped XML format out there,
but I can't recall anything off the top of my head, nor see something that
flicks a lightbulb on in the first screen of googlage results.
You might feel particularly adventurous and try compiling the POI ruby
bindings, if the thought of working with with GCC compiled Java doesn't scare
you. (It does indeed scare me...)
That said, the topic is also fairly recurrent on the list in my opinion, so
give searching the ML archives a try too.
David Vallner
I once counted 5 ways to get at Excel data: CSV, OLE, XML, ADO and i
can't remember what the other one was.
All the best
Jon Egil Strand
--
Jon Egil Strand
Phone: +47 98232340
j...@luretanker.no
> Is it possible to access Excel spreadsheets through ruby?
> If so is there somewhere a code example I can have a look at?
In case you missed this: