Ruby access to an existing Spreadsheet with complex formulae

S

seabird20

I am having a troublesome problem. I am trying to pull data out of a
complex Excel workbook (several worksheets in the book) and make the
contents available for a variety of reporting uses. I am working in
Ruby - for no reason other than "just because".

All is going well when I have cells that contain simple data types, but
as soon as there is any kind of complexity in a formula, I get a weird
negative number back instead of the contents. For example:

Cell K3 has this formula.....=VLOOKUP(H3,Quadrant_Table,3)
The value when that formula is executed is "Adopt" and that is what
shows on the screen.
When I go in from Ruby (via WIN32OLE), I get the number -2146826265
back.

The Ruby snippet that does this is

colIndex = @startCol
colIndex.upto(endCol) {|aCol|
currCell = ("#{@@colnames[aCol-1]}#{aRow}")
@cells << (sheet.Range(currCell) ['Value']).to_s

}
}
end

@cells is an array of individual cells. There are likely to be many
better (faster) ways of getting the range back in one fell swoop, but
right now I am less interested in that. First get answers that you
like, then improve the approacch!

For simple string values, non formula arithmetic values, this delivers
just what it should. However for these complex formulae the result is
always that funky -2146826265. This is also x'800A07E7' which looks
suspiciously like an hresult value.

So the question is, how to I get the displayed value out of the cell
from my Ruby program?

Thanks in advance for any help.

Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top