概述
CSV檔案是一個計算機數據檔案用於執行審判和真正的組織工具,逗號分隔的清單。CSV檔案以數字存儲的數據結構表的形式列出,相關的項(成員)組與其他項(成員)由逗號隔開。表格中的行與CSV檔案的行對應。同行欄位用逗號分隔。CSV檔案常常被用於在兩個不同的
電腦程式之間移動表格數據,例如關係資料庫程式和電子表格程式。
技術背景
.csv 檔案格式的使用可以追溯至早期的商用電腦,它被大範圍使用於
電腦內部不同數據文字格式大小的轉化。基於此原由,csv文檔格式適用於任何電腦平台。
在不同的.csv導出導入工具中也允許用其他的符號作為分隔設定。一些簡單的.csv轉換工具不允許欄位數值中存在逗號或者其他特殊符號例如換行符。更多複雜的CSV轉換工具允許欄位數值中包含有逗號或特殊符號。它們通常用雙引號括住有特殊符號的數值,內容中的雙引號符號可以用兩個雙引號來表示。也有一些CSV工具用轉義符號例如利用反斜扛對保留字元進行編碼。
在計算機科學方面,這種類型的格式是所謂的“平面檔案”,因為只有一個表可以存儲在CSV檔案。大多數系統都使用了一系列的表來存儲他們的信息,即必須“移”到一個單一的表,往往信息重複幾次行,創建一個文本檔案。
歷史
CSV是一項古老的技術,比個人電腦的出現還早至少10年。運行於OS/360環境下的IBM Fortran編譯器在1967就支持這種技術。相對於固定列寬數據格式,逗號分隔數據格式不僅在輸入到打孔卡時更加方便,而且在輸錯位置時也不容易產生錯誤結果。
逗號分隔的列表(CSL公司)是一種數據 格式稱為逗號分隔值(CSV)的最古老的天簡單的電腦。在個人電腦產業(當時更普遍稱為“家用電腦”),早期最常見的使用是由小企業創造的招標使用樣板 套印 ,通過郵寄名單。
一些早期的套用軟體,如文字處理機,讓流“可變數據”要合併兩個檔案:一種形式的信,和CSL公司的名稱,地 址,數據和其他數據方面,仍然是,僅僅是因為工作需要人力輸入(建設清單)是很自然的和易於使用逗號分開劃 定。CSL公司/ CSVs也被用來交換桌上型電腦之間的數據不同的架構,並進行簡單的資料庫的用途。
規範
逗號分隔列出日期之前,儘早從個人電腦,但被廣泛套用於最早前
IBM個人電腦時代的個人電腦磁帶存儲備份和交換的信息的資料庫機器的兩種不同的架構。在這一天,負擔得起的硬碟驅動器不存在,和許多小型企業試圖實現 效益的計算使用軟碟的軟體。
CSV沒有通用標準規範。不同的程式間CSV的標準有差異很常見,這可能導致互動操作困難。網際網路通信的CSV檔案,資料的IETF檔案( 符合RFC 4180於2005年10月)介紹了格式的“text/csv格式”MIME類型登記的IANA負責。另一個相關的規格是由派出文字其中也包括CSV格式。
許多非正式檔案的存在,說明CSV格式。如何:逗號分隔值(CSV)檔案格式概述了CSV格式中使用最廣泛的套用和解釋它如何能最好地利用和支持。
基本規則
CSV格式是分隔的數據格式,有欄位/列分隔的逗號字元和記錄/行分隔換行符。欄位包含特殊字元(逗號,換行符,或雙引號),必須以雙引號括住。行內包含一個項目是空字元串,可以以雙引號括住。欄位的值包含雙引號時,要雙寫這個雙引號(就像把一個雙引號當做轉義符一樣)。CSV檔案格式並不需要特定的字元編碼,位元組順序,或行終止格式。
每個記錄是一個行終止了換行符(ASCII碼/低頻= 0×0A)或回車換行符和一雙(ASCII碼/ CRLF = 0×0D0×0A),然而,線路中斷可以嵌入。
欄位用逗號分隔(雖然地點在逗號作為小數點,分號是用來代替作為定界符)
1997,Ford,E350
在某些的CSV實施,領導和尾隨
空格或
制表符,毗鄰
逗號,裝飾。這種做法是有爭議的 , 實際上是明文禁止的RFC 4180,其中規定,“被認為是空間的一個組成部分領域 , 而不應被忽視。”
各領域內的嵌入式逗號必須存放在雙引號字元。
各領域內的嵌入式雙引號字元必須是封閉的雙引號字元,每一個嵌入式雙引號字元必須用一對雙引號字元。
各領域內的嵌入式換行符必須封閉在雙引號字元。
領域的前導或尾隨空格內必須封閉雙引號字元。 (見評論領導和尾隨空格以上。)
欄位可能永遠是封閉的雙引號字元,是否有必要或沒有。
第一條記錄中的CSV檔案中可能包含列名的每個領域。
舉例說明
舉例說明
年 | 製造商 | 型號 | 說明 | 價值 |
1997 | Ford | E350 | ac, abs, moon | 3000.00 |
1999 | Chevy | Venture "Extended Edition" | | 4900.00 |
1999 | Chevy | Venture "Extended Edition, Very Large" | | 5000.00 |
1996 | Jeep | Grand Cherokee | MUST SELL! air, moon roof, loaded | 4799.00 |
上面表格內容若以CSV格式表示就會像下列:
年,製造商,型號,說明,價值
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air, moon roof, loaded",4799.00
以上這個CSV的例子說明了:
包含逗號,雙引號,或是換行符的欄位必須放在引號內。
欄位內部的引號必須在其前面增加一個引號來實現文字引號的轉碼。
分隔設定逗號前後的空格可能不會被修剪掉. 這是RFC 4180的要求。
元素中的換行符將被保留下來。
套用支援
因為CSV檔案格式非常簡單,幾乎所有的電子表格和資料庫管里系統都有支援。許多程式語言也提供了函式庫支持 CSV 檔案的匯入或匯出。事實上,許多程式都允許 CSV 檔案使用任何分隔設定。