1. 程式人生 > >【 D3.js 進階系列 — 1.1 】 其他表格檔案的讀取

【 D3.js 進階系列 — 1.1 】 其他表格檔案的讀取

CSV 表格檔案是以逗號作為單元分隔符的,其他還有以製表符 Tab 作為單元分隔符的 TSV 檔案,還有人為定義的其它分隔符的表格檔案。本文將說明在 D3 中如何讀取它們。

 

1. TSV 表格檔案是什麼

TSV(Tab Separated Values),製表分隔值,它和 CSV 檔案僅僅是分隔符不一致。它的格式如下:

name	age
張三	22
李四	24

2. D3 中讀取 TSV 檔案

在 D3 中讀取 TSV 檔案的方法和 CSV 檔案是一樣的,只要更改一下函式名即可。方法如下:

			d3.tsv("table.tsv",function(error,tsvdata){
				console.log(tsvdata);
				var str = d3.tsv.format( tsvdata );			
				console.log(str.length);
				console.log(str);	
			});

我們可以看到,這和【進階系列 — 1.0】是基本一樣的,詳細說明可參見此文。


3. D3 中讀取 CSV 和 TSV 的本質

在上面兩節我們可以看到,讀取 CSV 和 TSV 驚人地相似。其實它們本質上都是一個函式,我們來看看 D3 原始碼中的定義:

  d3.csv = d3.dsv(",", "text/csv");
  d3.tsv = d3.dsv("	", "text/tab-separated-values");

可以看到,它們其實都是 d3.dsv 函式。那麼這個 dsv 函式是怎麼回事呢?dsv 其實可以讀取以任意字元或字串作為分隔符的表格檔案。接下來我們來試試用 dsv 函式讀取以分號作為分隔符的表格檔案。假設有如下檔案:

name;age
張三;22
李四;24

讀取的程式碼如下:

			var dsv = d3.dsv(";", "text/plain");
			dsv("table.dsv",function(error,dsvdata){
				if(error)
					console.log(error);
				console.log(dsvdata);
			});

先用 d3.dsv(";", "text/plain"); 定義分隔符為分號,再按照讀取 csv 和 tsv 檔案一樣的方法讀取即可。但要注意第二行不再需要用 d3.dsv ,因為變數 dsv 已經是一個函數了。


4. 結束語

CSV 檔案和 TSV 檔案僅僅是分隔符不同,它們的本質都是呼叫的 DSV 函式,所以 DSV 函式的掌握至關重要。

謝謝閱讀。

文件資訊

  • 發表日期:2014年10月03日
  • 備註:轉載請註明出處,謝謝