2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Excelでファイル保存する際、
「ファイルの種類(T):」の中に「SYLK(*.slk)」という選択肢がある。
こちらでファイルを保存すると「SLK(シルク)ファイル」が作成できる。
slkファイルが優秀そうだと感じたので、まとめてみた。

###SLKファイルとは何か
SYLKとは、表計算ソフトやデータベースソフトで扱うデータ形式のことである。
SYLKは、MicrosoftがExcelを発売する前に開発・発売していた表計算ソフトの Multiplan で導入された形式で、Excelはもちろん、他の表計算ソフトでもSYLK形式を使えるようになっていることが多いファイル形式となっている。ASCIIコード(漢字はシフトJIS)だけで構成されるテキスト形式だが、セル位置や、データが数字か文字かを示す情報などを記録しているので、少々冗長だが確実にデータを交換することが可能である。

###CSVとの比較

それぞれのファイルをExcelで開いたときの挙動は以下の例のようになる。
以下に書く形式は開いたときに表示してほしい形式で、
CSVは開くときの指定をすべて「標準」としているとする。

| 記述文字(形式) | CSV | slk |
| :---: | :---: | :---: | :---: | :---: |
| 0014(文字) | 14 | 0014 |
| 2021/08/01(日付) | 8月1日
(2021/08/01) | 2021/08/01 |
| 8-1(文字) | 8月1日
(2021/08/01) | 8-1 |
| 8/1(文字) | 8月1日
(2021/08/01) | 8/1 |

※csvをExcelで開いたときの表示形式の設定によって変わるが、
 関数フィールドに入っているのは()内

CSVではセル内に入れる文字の形式を指定しないと、勝手に型変換を行なってしまい、ほしい要素が違う値に変化してしまいがちになる。
一方、slkファイルはデータの型をすべて記録して出力されるので、Excel側で勝手に変更されることがない。

###これなら、CSVを使うより、slkを使うほうがよさそう?
でも、slkはそんなに浸透していない…
これなら、CSVを使うより、slkを使うほうがよさそうに見えるが、slkは以下の欠点がある。

  • データの中身(型)をすべて記録しているので、その分ファイル自体がCSVより2倍くらい重い
    • slkファイルをメモ帳等で確認するとわかるが、本データの前にフォントや表示設定のデータが記述されている
  • Excel発売前に導入された形式のため、互換性がなくなる可能性がある
  • __文字コードがShift-JISのみ__のため、文字化けを起こしやすい
    • 「ñ」「ç」のような特殊文字はもちろん非対応

###結論:そう簡単ではなかった
slkファイルは、データ型保持がある点でCSVより魅力的に感じるが、文字コードがShift-JISのみというのが致命的で、UTF-8だとまず間違いなく文字化けるのがものすごく難点。
Excel も後方互換のために対応できるようにしているような気がする…

slkファイルの上位互換(UTF対応)形式ができるといいな…

###参考
SYLKとは何? Weblio辞書

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?