Jump to content

Comma-separated values: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Removed 1st person (NPOV) Java package ad
Line 86: Line 86:
*[[Delimiter-separated values]]
*[[Delimiter-separated values]]
*[[Fielded text]]
*[[Fielded text]]
Java has a library to parse *.csv files named javacsv.jar. We can easily parse any *.csv file with this parser and can retrieve its each value. Its a very simple and easy to use library.


==External links==
==External links==

Revision as of 16:36, 4 June 2008

Comma-separated values
Filename extension
.csv
Internet media type
text/csv
text/comma-separated-values (deprecated)

The comma-separated values (or CSV; also known as a comma-separated list or comma-separated variables) file format is a file type that stores tabular data. The format dates back to the early days of business computing. For this reason, CSV files are common on all computer platforms.

CSV is one implementation of a delimited text file, which uses a comma to separate values (where many implementations of CSV import/export tools allow an alternate separator to be used; as is shown in the MS Access screen shot, below). However CSV differs from other delimiter separated file formats in using a " (double quote) character around fields that contain reserved characters (such as commas or newlines). Most other delimiter formats either use an escape character such as a backslash, or have no support for reserved characters.

In computer science terms, this type of format is called a "flat file" because only one table can be stored in a CSV file. Most systems use a series of tables to store their information, which must be "flattened" into a single table, often with information repeated over several rows, to create a delimited text file.

File:CSV Import Access2007.jpg
A wizard importing a CSV file into MS Access 2007

Specification

While no formal specification for CSV exists, RFC 4180 from October 2005 describes a common format and establishes "text/csv" as the MIME type registered with the IANA. Another relevant specification is provided by Fielded Text which also covers the CSV format.

Since csv files existed well before 2005 the RFC is only one special view on csv files.

Many informal documents exist that describe the CSV format. How To: The Comma Separated Value (CSV) File Format provides an overview of the CSV format in the most widely used applications and explains how it can best be used and supported.

The basic rules from a lot of these specifications are as follows:

CSV is a delimited data format that has fields/columns separated by the comma character and records/rows separated by newlines. Fields that contain a special character (comma, newline, or double quote), must be enclosed in double quotes. However, if a line contains a single entry which is the empty string, it may be enclosed in double quotes. If a field's value contains a double quote character it is escaped by placing another double quote character next to it. The CSV file format does not require a specific character encoding, byte order, or line terminator format.

  • Each record is one line terminated by a line feed (ASCII/LF=0x0A) or a carriage return and line feed pair (ASCII/CRLF=0x0D 0x0A), however, line-breaks can be embedded.
  • Fields are separated by commas.
1997,Ford,E350
  • In some CSV implementations, leading and trailing spaces or tabs, adjacent to commas, are trimmed. This practice is contentious and in fact is specifically prohibited by RFC 4180, which states, "Spaces are considered part of a field and should not be ignored."
1997,   Ford   , E350
same as
1997,Ford,E350
  • Fields with embedded commas must be delimited with double-quote characters.
1997,Ford,E350,"Super, luxurious truck"
  • Fields with embedded double-quote characters must be delimited with double-quote characters, and the embedded double-quote characters must be represented by a pair of double-quote characters.
1997,Ford,E350,"Super ""luxurious"" truck"
  • Fields with embedded line breaks must be delimited by double-quote characters.
1997,Ford,E350,"Go get one now
they are going fast"
  • Fields with leading or trailing spaces must be delimited by double-quote characters. (See comment about leading and trailing spaces above.)
1997,Ford,E350,"  Super luxurious truck    "
  • Fields may always be delimited by double-quote characters, whether necessary or not.
"1997","Ford","E350"
  • The first record in a csv file may contain column names in each of the fields.
Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar

Example

1997 Ford E350 ac, abs, moon 3000.00
1999 Chevy Venture "Extended Edition"   4900.00
1996 Jeep Grand Cherokee MUST SELL!
air, moon roof, loaded
4799.00

The above table of data may be represented in CSV format as follows:

1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition","",4900.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air, moon roof, loaded",4799.00

This CSV example illustrates that:

  • fields that contain commas, double-quotes, or line-breaks must be quoted,
  • a quote within a field must be escaped with an additional quote immediately preceding the literal quote,
  • space before and after delimiter commas may be trimmed, and
  • a line break within an element must be preserved.

Application support

The CSV file format is very simple and supported by almost all spreadsheets and database management systems. Many programming languages have libraries available that support CSV files. Even modern software applications support CSV imports and/or exports because the format is so widely recognized. In fact, many applications allow .csv-named files to use any delimiter character.

See also