Partha,
I would change your format for saving the data to be honest. There's no reason to save an integer as a float with 6 decimal places. It's inefficient at the least.
You can also build a tabs delimiited string for each set of data, append them all together to one large spreadsheet string and then write the file. There's no-one insiting you rely on an "array to spreadsheet string" function.
You can simply skip this function and create the string yourself. While you're at it, you can even use the SAME format string to create the string and to scan from it. An in-built sanity-check.
And as Wiebe has already said, if you (knowingly) save an integer as a float, then you need to read it as a float. The conversion to integer must be done AFTER scanning from string.
Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)