実はLibreOffice CalcはCSVエディターとして使用するのもまた便利です。今回はそのコツを紹介します。
CSVエディターとして優秀なCalc
LibreOffice Calcは、
準備
まずはCSVファイルを入手する必要があります。何でもいいですが、
LibreOfficeで扱うCSVファイルは何でもいいと書きましたが、
インポートダイアログ
LibreOfficeでCSVファイルを開くと、
図1がそのダイアログですが、
- 「文字エンコーディング」
はその名のとおりで、 もし誤っている場合は下にあるプレビューが文字化けします。逆に言えば、 ここで文字化けしない文字エンコーディングを指定してください。日本語ではUTF-8かUTF-16かShift-JISかWindows-932のいずれかに該当する可能性が極めて高いです [3]。 - 「言語」
は特段の理由がない限りは 「日本語」 でいいでしょう。外国のデータを扱う場合は、 その国に変更する必要があります。 - 「固定幅」
「区切る」 は、 固定長の場合は前者を、 可変長の場合は後者を選択してください。さらに、 可変長の場合は区切り文字 (デリミタ) を指定します。ご覧のとおり複数選択できますし、 「その他」 でデリミタを指定することもできます。おかしなフォーマットをCalcにインポートしたい場合、 この機能は意外と使えます [4]。 - 「フィールド区切りの結合」
は完全に意味不明ですが [5]、 ここにチェックを入れると空の項目がある場合はそこをスキップしてインポートします。もちろん複数のデータがある場合は、 項目がずれるようなことにはなりません。 - 「テキストの区切り記号」
はそのままで、 テキストを括る引用符を指定します。 - 「フィールドをテキストとして引用する」
は誤訳であり、 「区切り記号で括られたフィールドをテキストに」 とするのが妥当です [6]。 「テキストとして」 とはどういうことなのかというのは後述します。 - 「特殊数値を検出」
は、 日付や時間や指数表現をそれとしてインポートします。チェックを入れない場合は、 数値としてインポートします。日付や時間や指数表現は国によって違うので、 「特殊数値」 が意味するところも違ってくるのが難しいところではあるのですが。 - 「列の種類」
は、 その列の型を変更します (図2)。たとえば数字の場合は数値としてインポートしますが、 今回のように頭の 「0」 に意味がある場合、 数値にすると消えてしまいますが、 これだと困ります。というわけで、 ここで 「テキスト」 にすると、 この 「0」 は消えませんが、 その代わりテキストとして扱われるので計算などは原則としてできなくなります [7]。前述の 「テキストとして」 も、 つまりはそういうことです。あとは 「日付(YMD)」 と 「非表示」 は使用することがあるかもしれません。
エクスポートダイアログ
保存時は、
エクスポートダイアログは図3です。
- 「文字エンコーディング」
はいいでしょう。文字化けしないものを選択してください。 - 「フィールドの区切り文字」
は、 通常デフォルトのままでいいでしょう。 - 「テキストの区切り文字」
も、 通常はデフォルトのままでいいでしょう。 - 「セルの内容を表示どおりに保存」
はデフォルトでチェックが入っていますが、 このチェックを外すと生データのまま保存することがあるようです。しかし、 具体的にどんな数値でそうなるのかの検証はできませんでした。通常はデフォルトのままでいいでしょう [8]。 - 「計算結果の代わりにセルの数式を保存」
もそのままです。たとえばセルに “=3*3” と入力していた場合、 デフォルトでは “9” と保存されますが、 ここにチェックを入れると “=3*3” のままで保存されます。どういった場面で便利なのかはよくわかりませんが、 そういう機能があることを覚えておくといいかもしれません。 - 「全てのテキストのセルを引用符で囲む」
も見てのとおりの機能です。これは今回のように数字の前に 「0」 が入っているものの、 これをテキストとして扱いたいと言うような場合には、 チェックを入れておくといいでしょう。 - 「指定された列幅」
は若干わかりにくいですが、 要するに固定長のことです。と言うわけで、 ここにチェックを入れると固定長でエクスポートできます。
ついでに、
使用バージョン
本稿執筆時点でUbuntu 14.
4.
Excelのほうが便利なところ
Excelのほうが便利なところもいくつかあります。あくまで筆者が気づいた範囲ですが。
- 処理速度が速い
同じ処理、
たとえば連続データを実行しても、 速度の差は如何ともしがたいです。Excelでは体感でも数倍の速度で処理するうえ、 時間がかかる処理でも進捗が表示されるので大人しく待てるのですが、 Calcは時間がかかるうえに反応なしになるだけなので進捗がわかりません。 - 和暦の扱い
いまどきCSVデータに和暦が入っているということもあまりないとは思うのですが
[12]、 Excelでは日付として扱ってくれますがCalcでは文字列として扱ってしまいます。 - 関数の入れ子の数
関数はExcelのほうがたくさん入れ子にできます。具体的には忘れてしまいましたが、
Calcでは40個前後、 Excelでは60個前後だったと記憶しています。もちろんこれだけの入れ子を必要としている時点で使い方が間違っているのですが、 そうとも言ってられない場面ではExcelを使用しました。