Hacker News new | ask | show | jobs
by UnoriginalGuy 4226 days ago
They likely should have said "standards compliant CSV." I've worked a lot with CSV (too much!) and let me tell you Microsoft's tools are simply awful at following the CSV standard.

Excel in particular drives me up the will. Plus the automatic inferences in Excel break all kind of things. Have a six digit number? Randomly a date. Have a UPC? Going to corrupt it in numerous ways (leading zero stripping, converting to scientific notation, etc).

I can definitely sympathize with anyone who criticises Microsoft's CSV support. They really just want you to use an Excel format (either the binary format or the zip-XML one). However Excel formats are overly complicated for the type of data migration work CSV is often utilised for (XML is too large, it adds up, and requires custom code to import/export (even if that is XSL from CSV), JSON might be better but isn't "yet" popular).

4 comments

I completely agree with you on Excel. It's gotten bad enough that I'm starting to toy with the idea of replacing Excel with a CSV viewer in my workflow (since all that I use Excel for is to view small-ish CSVs, anyway).
I've gotten into using node.js with the mssql module for handling csv or xml in a stream... it does work really well, and the compatibility is pretty smooth.

I wish that line-item JSON were more popular, it's more expressive than csv, the tooling (programatic) seems to be a bit better, and much less verbose than equivalent XML, which I always had a problem with, as mapping XML to/from an object model is always more painful by comparison.

line-item utf-8 json+gz work really well for import/export data...

> let me tell you Microsoft's tools are simply awful at following the CSV standard.

There's no such thing. CSV is a convention that people mostly agree on but there's no written CSV standard and no CSV standards body.

RFC 4180 is close enough for me.
what gets me is scientific notation. Sure, I'd love for you not ask me and convert all my large numbers into scientific notation.... and loose digits