ガイド · Excel → Markdown
Excel を Markdown に:数式と書式
Markdown の表は文字の長方形です。ワークシートはセルの長方形で、セルは下に数式を、上に表示のマスクを抱え、さらに結合で隣まで伸びられます。この四つのうち三つには置き場がありません。
だから役に立つ問いは狭いものになります。このシートが知っていることのうち、表に届くのはどれで、あなたが取りに来たものはその中に入っているか。
数式はその答えになる
=SUM(B2:B9) は 4211 になって届きます。役に立つのはこの向きです。Markdown は何も計算しないので、貼られた数式は文書の中で動かない文字 —— 意味がありそうに見えて、実際にはない文字 —— として居座るだけになります。
こう動くのは、Excel が保存のたびに計算済みの値を数式の隣にキャッシュしているからです。変換ツールはそのキャッシュ値を読みます。だから自前の数式エンジンが要らず、これ全部がブラウザのタブの中で動きます。
B10: =SUM(B2:B9)| Total | 4211 |誰も一度も開いていないブック
ブックがスクリプトで作られていて —— Python の書き出し、帳票の処理、スプレッドシートのライブラリを使う何か —— 一度も Excel で開かれていない場合、キャッシュ値がありません。誰も書いていないからです。そのセルは空になります。
一往復で片づきます。Excel か LibreOffice でブックを開いて、保存して、閉じる。キャッシュを埋める動作が保存です。それでも空として読まれたシートは出力の上で名前を挙げられるので、空白だけの表をうっかりコピーしていくことはありません。
数式のエラーも #DIV/0! や #REF! ではなく空で出ます。列全体で参照が壊れていると空白の列になるので、理由もなく空の列があったら元を確かめてください。
表示形式は残らない
このページの中で、変換の前に読んでおく価値が一番あるのはこれです。Excel は表示のマスクと保存された数値を別の場所に置いていて、データなのは後者だけ —— マスクは描画の指示です。
だから ¥1,234.50 は 1234.5 として、12.50% と表示されているセルは 0.125 として着地します。壊れたものは何もありません。それがこのファイルがずっと持っていた数字で、マスクを外しただけです。
書式が要るなら、TEXT() 関数で組んだ整形済みの文字列の列をシートに足して、その列を使ってください。そうすれば文字列で、文字列は書かれたとおりに届きます。
日付は例外です。日付も数値として保存されていますが、表示形式で日付と分かるので、1995-01-01 の形で出ます(時刻があれば付きます)。UTC で読むのは意図的です。素朴なやり方だと、グリニッジより西にいる人全員の日付が 1 日ずれます。
結合セルはばらばらになる
A1:C1 で結合した見出しは、文字の入ったセル 1 つと、隣の空セル 2 つになります。Excel は結合の値を左上のセルに置き、残りは本当に空にしているので、読めるものがそれだけなのです。
Markdown に colspan はないので、組み直す方法もありません。レイアウトに意味があるなら、先に Excel で結合を解除してください。多くの場合、見出しを中央に置くためだけの結合です。
色、フォント、罫線、条件付き書式、セルのコメントも同じ道を通り、理由も同じです。Markdown にはそれらの構文がありません。
シートは 1 枚ずつでも、まとめても
見出しが付くのは 2 枚以上選んだときだけです。1 枚ならどのシートかは分かっているので、見出しはただの雑音になります。
末尾の空行は先に切り落とします。これは見た目より大事で、Excel で空のあたりをクリックして回るだけで、シートが「数百行あります」と言うようになります。切り落として空になったシートは、空白の表を出すのではなくそう知らせます。
- 01ブックを置きます。シート名が行数付きの一覧で返り、最初のシートが変換されます。
- 02必要なシートにチェックを入れます。選択を変えると、すでにメモリにある写しから出力を作り直します。ファイルを読み直すことはありません。
- 03複数選ぶと 1 つの文書として出て、各表がシート名の ## 見出しの下に並びます。
サイズの上限と、断られるファイル
ブック 1 つ 10 MB で、ほかの形式の 25 MB より低いです。.xlsx は zip で、タブの中で展開するとファイルサイズが示すよりずっと多くのメモリを食うからです。
選んだ範囲の合計で 10 万セル。だからシートを絞ると、全部では入らない大きなブックが通ることがあります。
パスワード付きのブックは、半端に読むのではなく断ります。古いバイナリの .xls も同じです。どちらも zip ではなく OLE のコンテナで、ここでは読めません。Excel で開いて、パスワードなしの .xlsx として保存してください。
このページに間違って .docx や PDF を置いても、試みることはしません。先にファイルヘッダーを見て、それを受け取るページの名前を出します。
ブックを置いて、必要なシートにチェックを入れて、表をコピーする。.xlsx はこのタブの中で展開され、ほかのどこにも行きません。ファイルが財務モデルのときは、そこが肝心です。
Excel → MD