0
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.

[発掘][MP]SYLKファイルフォーマット

Last updated at Posted at 2020-07-06

https://support.microsoft.com/ja-jp/help/410409
で公開されていた資料。MPというのはMultiplanの略。
なお、Notepadで開くことはできる。基本はテキスト形式でバイナリではない。

概要


この資料は、SYLK ファイル フォーマットについて説明したものです。

現象


SYLK ファイルは "Symbolic Link File" の略で、この形式のファイルは他の プログラムでも読むことができ、Multiplan でも読み込むことができます。
つまり、Multiplan と他のプログラムとの間のデータの互換性は、両方向の流れに
なります。

1. SYLK ファイルの構造

SYLK ファイルは、ASCII コード(漢字は、シフト JIS コード)からなるテキスト
ファイルで、その構造は図 1 のようになっています。

レコードの終わりには、必ず CR/LF が付きます。ファイルの先頭は "ID コード ", 最後は "E コード で不可欠なレコードです。この 2 つのレコードにはさまれた レコードが、データレコードです。

データレコードは 図 2 のように、セミコロン (;) で区切られた複数のフィールド
から構成されています。各レコードの先頭フィールドには、そのレコードの性質を
表す 2 文字までのレコードタイプ記述子 RTD (Record Type Descliptor) が入ります。 それに続く各フィールドには、そのフィールドの性質を表す 1 文字のフィールド
タイプ記述子 FTD (Field Type Descriptor) とパラメータ (データ) が入ります。

2. レコードの順序

SYLK ファイルのレコードは、下記のような順序で並んでいる必要があります。
  1. 最初のレコードは、ID レコードです。
  2. P レコードは、書式表示を指定するピクチャ・フォーマットを登録します。
  3. B レコードは、Multiplan でデータ入力を行なう際に必要なものです。 Multiplan でデータ入力を行なわない場合は省略することもできます。
  4. 他のレコードから参照されている C レコードは、参照するレコード (;D または、 ;G を伴っている) よりも前になければなりません。
  5. 名前を定義するレコードは、その名前を参照するレコードよりも前にある必要が あります。
  6. 窓分割と窓の属性は、正しい順序で並んでいなければなりません。
  7. NU レコードは、必ず NE レコードの前に必要です。
  8. ファイルの最後は、必ず E レコードで終ります。

最終更新日:
2004/09/05

[slk拡張子のエクセルファイルを保存せずに.xlsに変換するには](https://oshiete.goo.ne.jp/qa/6269422.html) >この表は、Microsoft Multiplan 4.0 Standard Edition(正確には、4.11)ですが、この仕様は、他社製ですと、公開された標準フォーマットが、3.1 版だったはずで、特に問題はないとは思いますが、もう下位互換ということはありえませんが、上位互換だけです。 [【Excel】SYLK ファイルであることを確認しましたが、読み込むことができません](https://www.softel.co.jp/blogs/tech/archives/2361) Excel はテキスト、CSVファイルの先頭の文字列が “ID” で始まる場合、ファイルを SYLK 形式として認識します。 つまり `ID,Name,Data` や `ID01,Name,Data` はだめだった。 当時は最初のIDを別の字に変える方法で切り抜ける方法もあったようだ。
  • Microsoftサポートオンライン "SYLK: ファイルの形式が無効です"ファイルを開くと、エラー メッセージ
  • Microsoftサポートオンライン [XL2000] 先頭データが「ID」で始まるテキストまたは CSV ファイルを開けない問題

この現象はEXCEL2016では生じないようだ。だが当然のことながら、EXCELは突然昔のバグが復活する時がある。
Excel 2016でSYLKファイルを開けない

Excel-VBA CSVファイルがエラーで開けない(SYLK ファイルであることを確認しましたが、読み込むことができません)
EXCEL2013の例。このようにバグが発生している。

SYLKファイルを作ってみる

```text ID,sName,sMoney 1,M,1000 ```

これをANSIのSY.csvとして保存しても問題なく開ける。
しかし、拡張子をSLKとするとエラーになる。

一度Excelに読み込ませて、SLK形式で出力する。
すると表示形式など書式の指定が出てくる。
それをカットすると、次のようになる

ID;PWXL;N;E
C;Y1;X1;K"ID"
C;X2;K"sName"
C;X3;K"sMoney"
C;Y2;X1;K1
C;X2;K"M"
C;X3;K1000
E

EXCELから出力されたSYLKファイル

3行程度のテキストが85行になる 省略しているが、2行目から表示形式の設定が始まり、50行目すぎからフォントの指定が始まる。 大体上記の仕様に沿っている。 しかし、上の記事がなければなんのことだかわからない。 なぜ必要がある記事を消してしまうのか、マイクロソフトのやっていることは企業としてありえない。資源とかリソースとか泣き言は一切効かない。そういうのを言わないためにITってできたんだから。サーバーにアクセスがないから非効率なので消しますってすごいジョークです。そういう非効率なデータを乗せるのがネットだったんだから。 しかし、Excelから出力されたSYLKファイルは確かにデータベースに変換することは難しい。 書式指定などを飛ばして1行1行読む必要があるとかんがえられる。
ID;PWXL;N;E
P;PGeneral
P;P0
P;P0.00
P;P#,##0
P;P#,##0.00
P;P#,##0;;\-#,##0
P;P#,##0;;[Red]\-#,##0
P;P#,##0.00;;\-#,##0.00
P;P#,##0.00;;[Red]\-#,##0.00
P;P"$"#,##0;;"$"\-#,##0
P;P"$"#,##0;;[Red]"$"\-#,##0
P;P"$"#,##0.00;;"$"\-#,##0.00
P;P"$"#,##0.00;;[Red]"$"\-#,##0.00
P;P0%
P;P0.00%
P;P0.00E+00
P;P##0.0E+0
P;P#\ ?/?
P;P#\ ??/??
P;Pyyyy/m/d
P;Pd\-mmm\-yy
P;Pd\-mmm
P;Pmmm\-yy
P;Ph:mm\ AM/PM
P;Ph:mm:ss\ AM/PM
P;Ph:mm
P;Ph:mm:ss
P;Pyyyy/m/d\ h:mm
P;Pmm:ss
P;Pmm:ss.0
P;P@
P;P[h]:mm:ss
P;P_ "$"* #,##0_ ;;_ "$"* \-#,##0_ ;;_ "$"* "-"_ ;;_ @_ 
P;P_ * #,##0_ ;;_ * \-#,##0_ ;;_ * "-"_ ;;_ @_ 
P;P_ "$"* #,##0.00_ ;;_ "$"* \-#,##0.00_ ;;_ "$"* "-"??_ ;;_ @_ 
P;P_ * #,##0.00_ ;;_ * \-#,##0.00_ ;;_ * "-"??_ ;;_ @_ 
P;P\$#,##0_);;\(\$#,##0\)
P;P\$#,##0_);;[Red]\(\$#,##0\)
P;P\$#,##0.00_);;\(\$#,##0.00\)
P;P\$#,##0.00_);;[Red]\(\$#,##0.00\)
P;Pm/d/yy
P;Pyyyy"年"m"月"d"日"
P;Ph"時"mm"分"
P;Ph"時"mm"分"ss"秒"
P;P[$-411]rr\.m\.d
P;P[$-411]rr"年"m"月"d"日"
P;Pyyyy"年"m"月"
P;Pm"月"d"日"
P;P[$]rr"年"m"月"d"日";;@
P;P[$-411]rr"年"m"月"d"日";;@
P;P[$]rr"年"m"月"d"日";;@
P;FMS 明朝;M220;L9
P;FMS 明朝;M220;L9
P;FMS 明朝;M220;L9
P;EMS 明朝;M120
F;P0;DG0G8;M270
B;Y2;X3;D0 0 1 2
O;L;D;V0;K47;G100 0.001
C;Y1;X1;K"ID"
C;X2;K"sName"
C;X3;K"sMoney"
C;Y2;X1;K1
C;X2;K"M"
C;X3;K1000
E

ACCESSへのインポート

https://web.archive.org/web/20040228005422/http://www.accessclub.jp/bbs2/0011/beginter03664.html http://www.accessclub.jp/bbs2/0011/beginter03664.html

一発でできる方法はないため、Excelで変換する方法が推奨されている。

MACのSYLK

http://www.marvel.co.jp/htm/Technic/Technic/sylk.html 改行コードが異なるのでCRがついている。 WINDOWSならCRLFになる。

文字コード、区切り文字

文字コードはANSI形式(ただし改行のように表示されないものは使用できない) 区切り文字はTAB、コンマが使用可能。

他のファイル形式では転送されない Excel の書式と機能 -Excel](https://support.microsoft.com/ja-jp/office/%E4%BB%96%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F%E3%81%A7%E3%81%AF%E8%BB%A2%E9%80%81%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84-excel-%E3%81%AE%E6%9B%B8%E5%BC%8F%E3%81%A8%E6%A9%9F%E8%83%BD-8fdd91a3-792e-4aef-a5bb-46f603d0e585)
SYLK (シンボリックリンク)
このファイル形式 (.slk) では、作業中のワークシートの値と数式のみが保存され、セルの書式は制限されています。

1つのセルに最大255文字が保存されています。

Excel の関数が SYLK 形式でサポートされていない場合は、ファイルが保存される前に関数が計算され、数式は計算結果の値に置き換えられます。

ほとんどのテキスト形式が保存されます。変換された文字列は、セルの最初の文字の書式に設定されます。 回転したテキスト、結合されたセル、および水平方向と垂直方向のテキスト配置の設定が失われます。 Excel で変換した SYLK シートをもう一度開くと、フォントの色が別の色に変換されることがあります。 罫線は、単一行の罫線に変換されます。 セルの網かけは、灰色の網かけに変換されます。

ページ設定、および任意指定のページ区切りは失われます。

セルのコメントは保存されます。 Excel で SYLK ファイルをもう一度開いた場合は、コメントを表示することができます。

グラフィックス、埋め込みグラフ、オブジェクト、フォームコントロール、ハイパーリンク、データの入力規則、条件付き書式、およびその他のワークシートの機能は失われます。

VBA コードは保存されません。

ピボットテーブルレポートの現在のビューに表示されているデータが保存されます。その他のピボットテーブルデータはすべて失われます。

Excel でサポートしているファイル形式

Excel でサポートしているファイル形式
テキスト ファイル形式
SYLK .slk シンボリック リンク形式。 作業中のシートだけを保存します。

クリップボードを使うファイル形式

Excel 使用を開始する 基本 他のファイル形式でブックを保存する

クリップボードを使うファイル形式

次のいずれかのファイル形式でクリップボードにデータをコピーすると、[貼り付け] または [形式を選択して貼り付け] ([ホーム]、[クリップボード]、[貼り付け]) を使って Excel に貼り付けられます。
表中
SYLK .slk シンボリックリンク形式

いつものことだが

それにしてもたかだか数10年程度で使い物にならなくなるフォーマットの製品で「ペーパーレス」とかよく言えるものだ。IT業界はなぜできもしない、やれもしない寝言を言ってカネを稼ごうとするのか。結局紙の代替となるフォーマットなど作れないのでどんどんモデルチェンジして前のは使えませんばかり。一番のセキュリティはPCを使わないことだってところにだんだん近づいているよね。
0
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
0
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?