Thanks Scoo8y. While I've got most of the work done, finding/including a library to parse the spreadsheet would only require a rework. As long as the server and my dev server have the TypeGuessRows=0 & IMEX=1, then it will give me just STRINGS. I'm ok with that. So, that's done. It won't really matter if the user inputs a cell as text when it is in fact a number. I get a string. I just have to cast the 2 columns on my side as DOUBLES.
Everything thus far is adding up . . . except when comparing values of the sums of those columns!

I think someone just ran a formula, not accounting for text as number & the sum was off. I was racking my brain trying to figure out what was going on, but my application was RIGHT & the spreadsheet with mixed datatypes was reporting a WRONG sum.
It's ok. I'm verifying the data before DB insert. If the SUMS aren't equal, then it'll fail. The only problem is while adding them up cast as DOUBLES, it works, but when comparing my calculated sum to the report sum (as a STRING), even when cast as a DOUBLE, it still fails to match!
This failed!
Code:
thisCalculatedPPM = ((thisComponent.pFragSubstanceMass / thisMassSum) * 1000000)
boolIsEqual = False
If CDbl(thisComponent.pFragSubstancePPM) = CDbl(thisCalculatedPPM) Then
boolIsEqual = True
End If
This works! Note going from CDbl -> CStr
Code:
thisCalculatedPPM = ((thisComponent.pFragSubstanceMass / thisMassSum) * 1000000)
boolIsEqual = False
If CStr(thisComponent.pFragSubstancePPM) = CStr(thisCalculatedPPM) Then
boolIsEqual = True
End If
(thisComponent.* = object reference to the XLS data)
I'm really hoping I don't run into any instances where that truly won't be equal.