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