CSV is a common, relatively simple file format that is widely supported by consumer, business, and scientific applications. Among its most common uses is moving tabular data between programs that natively operate on incompatible (often proprietary and/or undocumented) formats. This works because so many programs support some variation of CSV at least as an alternative import/export format.
For example, a user may need to transfer information from a database program that stores data in a proprietary format, to a spreadsheet that uses a completely different format. The database program most likely can export its data as “CSV”; the exported CSV file can then be imported by the spreadsheet program.
“CSV” is not a single, well-defined format (although see RFC 4180 for one definition that is commonly used). Rather, in practice the term “CSV” refers to any file that:
- is plain text using a character set such as ASCII, Unicode, EBCDIC, or Shift JIS,
- consists of records (typically one record per line),
- with the records divided into fields separated by delimiters (typically a single reserved character such as comma, semicolon, or tab; sometimes the delimiter may include optional spaces),
- where every record has the same sequence of fields.
Within these general constraints, many variations are in use. Therefore “CSV” files are not entirely portable. Nevertheless, the variations are fairly small, and many implementations allow users to glance at the file (which is feasible because it is plain text), and then specify the delimiter character(s), quoting rules, etc. If a particular CSV file’s variations fall outside what a particular receiving program supports, it is often feasible to examine and edit the file by hand or via simple programming to fix the problem. Thus CSV files are, in practice, quite portable.