Tablora · ライブラリ
CSVフィールド内の引用符を読み取る
CSVでは、引用符で囲んだ項目の中の二重引用符2つが引用符1つを表します。She said "hello"の読まれ方と、バックスラッシュが通らない理由を説明します。
CSVで値の中に引用符を書く方法
引用符を含むCSVの項目は、全体を引用符で囲み、中の引用符はそれぞれ2つ重ねて書く必要があります。そのため、セルの文字She said "hello"は、ファイルには"She said ""hello"""として保存されます。外側の引用符は構文で、中で2つ重なった組はそれぞれ文字としての引用符1つを表します。
プログラミング言語から借りた約束事で、引用符の前にバックスラッシュを書くソフトもあります。検査ツールが従うのはそちらではなくCSVの規則なので、バックスラッシュによるエスケープは受け付けません。
Posterの行を確かめる
このページの例は、見出しitem,noteと、noteが"She said ""hello"""であるレコード1件で、「区切り文字」はカンマです。検査ツールは2行・2列と報告します。2行目2列目はShe said "hello"となり、helloの前後に引用符がちょうど1つずつ付きます。
プレビューでhelloの両側に引用符が2つずつ見える場合、元データでその項目が引用符で囲まれておらず、そもそも正しいCSVではない可能性が高いでしょう。
解析できない入力
- 囲まれていない項目の途中にある引用符、たとえば外側の引用符がないShe said "hi"は拒否されます。ツールは項目の終わりを推測せず、「入力した値を確認して、もう一度お試しください。」と表示します。
- 引用符の前のバックスラッシュではエスケープにならないため、バックスラッシュでエスケープして書き出されたテキストも同じ理由で拒否されます。
- "hello"xのように、閉じる引用符の後に文字がある場合も拒否されます。
- 「区切り文字を検出」を選んでいると、検査ツールはカンマ、セミコロン、タブ、縦棒を試し、どれでも解析できない場合にだけエラーを報告します。
- 引用符で囲む項目は区切り文字の直後か行頭から始まる必要があるため、開く引用符の前に空白がある場合も拒否されます。
引用符を含むテキストを直して書き出す
- 元の書き出しでその項目を探し、書き出したソフトに標準のCSV形式の設定があるか確認します。
- 手で直す場合は、項目全体を引用符で囲み、中の引用符をすべて2つ重ねます。
- もう一度「計算」を押し、セルの引用符が1つずつになっていることを確かめます。
- プレビューが正しければ「ダウンロード (CSV)」を使います。ダウンロードでは同じ重ねる規則で引用符が書き戻されるので、他のソフトでも読み込めます。
アプリの書き出しでの引用符
TabloraアプリのCSV書き出しも、セルに引用符、カンマ、改行が含まれる場合は同じ規則に従います。セルを引用符で囲み、中の引用符を2つ重ねます。XLSX書き出しでは引用符は単にセルの文字の一部なので、エスケープが目に見えることはありません。
入力値
- 表のテキスト
- item,note Poster,"She said ""hello"""
- 区切り文字
- ,
結果
- 行数
- 2
- 列数
- 2
| item | note |
|---|---|
| Poster | She said "hello" |
- 幅の異なる行
- 0