tags:

views:

982

answers:

3

Hi folks,

is there any official way to allow a csv formmated file to allow comments, either on it's own line OR at the end of a line?

I tried checking wikipedia on this and also RFC 4180 but both do not mention anything .. which leads me to believe that it's not part of the file format so it's bad luck to me and i should then use a seperate ReadMe.txt file thingy to explain the file.

Lastly, i know it's easy for me to add my own comments in, but i was hoping that something like Excel could just import it straight away .. with no need for a consumer to have to customize the import process.

So, thoughts?

+2  A: 

The CSV "standard" (such as it is) does not dictate how comments should be handled, no, it's up to the application to establish a convention and stick with it.

skaffman
+1  A: 

A Comma Separated File is really just a text file where the lines consist of values separated by commas.

There is no standard which defines the contents of a CSV file, so there is no defined way of indicating a comment. It depends on the program which will be importing the CSV file.

Of course, this is usually Excel. You should ask yourself how does Excel define a comment? In other words, what would make Excel ignore a line (or part of a line) in the CSV file? I'm not aware of anything which would do this.

pavium
+2  A: 

No, CSV doesn't specify any way of tagging comments - they will just be loaded by programs like Excel as additional cells containing text.

The closest you can manage (with CSV being imported into a specific application such as Excel) is to define a special way of tagging comments that Excel will ignore. For Excel, you can "hide" the comment (to a limited degree) by embedding it into a formula. For example, try importing the following csv file into Excel:

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

You still end up with a cell in the spreadsheet that displays the number 0, but the comment is hidden.

Alternatively, you can hide the text by simply padding it out with spaces so that it isn't displayed in the visible part of cell:

                              This is a sort-of hidden comment!,
John, Doe, 24

Note that you need to follow the comment text with a comma so that Excel fills the following cell and thus hides any part of the text that doesn't fit in the cell.

Nasty hacks, which will only work with Excel, but they may suffice to make your output look a little bit tidier after importing.

Jason Williams