calamine
calamine copied to clipboard
Ignoring Cell Formatting
is there a way to skip processing cells based on their excel defined format(e.g. Number
)? we have users who upload excel files that are displayed one way in excel, but get converted to floats when they are processed through calamine.
this screenshot shows the issue. the csv was generated by saving the xlsx file as a csv. the last two columns have the Number
format applied and get converted to floats before getting converted back into strings.
ideally, those values would get preserved as strings to avoid things like differences in float precision adding a bunch of extra digits or truncating trailing or leading 0s. is there a way to do that currently? i made a small repo showing the problem using the deserialize
function to specify that the output should always be String
https://github.com/TomPridham/calamine-float
The value in the xlsx file really shows
<c r="E2" s="2"><v>7.0000000000000009</v></c><
Formatting is not properly supported in calamine unfortunately.
oh hmm. i didn't realize that excel would export the CSV based on what was displayed rather than what the actual value was. i guess i shouldn't be surprised excel does something unexpected. thanks for looking at this.
is formatting just something that hasn't been implemented yet or is there an argument against supporting it? if it hasn't been implemented, is this where you would recommend looking for prior art? https://git.sheetjs.com/sheetjs/sheetjs/src/branch/master/packages/ssf/ssf.js
This hasn't been implemented yet because I don't have the bandwidth for that. It is highly requested though.