このツールの動作
オブジェクトの配列が行になり、キーが見出しになります。
[
{ "name": "Ada", "born": 1815 },
{ "name": "Alan", "born": 1912 }
]
name,born
Ada,1815
Alan,1912
根はオブジェクトの配列である必要があります。表とは記録の並びであり、単体のオブジェクトに行はありません。一行のつもりなら [ ] で包んでください。
長い識別子は桁を保つ
[{ "id": 12345678901234567890 }]
は二十桁のまま出ます。JSON をまず JavaScript の値へ解析する変換器は、十五桁ほどを超えると黙って丸めます。しかも、元の行にはもう対応しない数値へと。
三つの曖昧さを名指しする
null と空文字列は同じセルになる。 null も "" も区切りの間に何も置かず、後から読む側には区別がつきません。その違いが大事なら、CSV は行き先として適しません。
入れ子の値はセルの中の JSON になる。 セルが持てるのは一つの値で、キーが持っているのは部分木です。親.子 という勝手な列に散らせば、受け取る側が同意していない命名規約を押し付けることになります。
不揃いな記録は和集合になる。 見出しは現れたすべてのキーを初出順に並べたもので、欠けている記録には空のセルが入ります。列を捨てても行を捨てても、きれいな長方形のためにデータを失います。
Excel 向けの設定
Excel は素の UTF-8 の CSV を確実には読みません。バイト列から符号化を推測し、たいていはシステムの旧来のコードページを選びます。café が café になるのはこのためです。
Excel 向けの設定は、Excel が理解する二つのものを書きます。バイト順マークと、区切り文字を告げる先頭の sep=, 行です。どちらも標準の CSV ではありません。sep= に至っては Microsoft の拡張で、ほかの読み手はこれをデータの一行目として表示します。だからこそ、既定ではなく、必要なときに入れる設定にしてあります。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。