アカウント名:
パスワード:
Excelって計算式を含むシート(やブック)をCSV形式で保存すると、全部、値として保存しちゃうから、読み込みも値だけなのかと思ってました。
実は計算式や関数を含むCSVを読み込んで、評価してくれるんですね。
今さらこれを知っても、何かに使える気はしないけど…。
01のような頭の 0 が、ただの CSV だと消えてしまいますが、="01"のように式で表現すると 01 と 0 つきで表示されます。
多分こんな感じで他にも応用がありそう……
内部的にはあくまで式で、文字列の 01 じゃないので使いたくないなぁ。
文字列で入れたいなら、`01 では?
それだと区切り文字が入力できないんで="文字列"の形にした上で文字列内の二重引用符などをエスケープ(二重にすればいいんだったかな)するのが一番駄目文字の少ない方法だった気がする。Unicode文字への対応も含めると、カンマ区切りのCSVをUnicodeにしても駄目で、タブ文字区切りのTSVをUnicodeで保存して拡張子CSVにすれば一発で自動認識されるんだったかな。
Unicode対応は、先頭にBOMをいれるだけでいいよ。
そうすると「,」がセパレータとして認識されないんスよ。新しいやつだと行けるのかもしれんけどOffice 2010あたりではそうなってた。今手元にあったOffice 2003(古っ)でも同じ。外部データの取り込みでやればいけるんだけど自動認識だと強制でタブ文字区切り。
ファイルの保存で出てくる選択肢に準拠してるっぽくてキャラクタ系のこの選択肢は実は3つしか無い。「テキスト(タブ区切り)(*.txt)」「Unicodeテキスト(*.txt)」「CSV(カンマ区切り)(*.csv)」Unicode(BOM付き)の時点で拡張子は無視で「Unicodeテキスト」になってて「テキスト(タブ区切り)」のUnicode版だからタブ区切りな感じ。
なのでBOMつけて、「U+0009」で区切って、各項目を文字列を示す式にして、式の中で適宜エスケープする必要がある。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
保存時は値にしちゃうけど (スコア:0)
Excelって計算式を含むシート(やブック)をCSV形式で保存すると、全部、値として保存しちゃうから、読み込みも値だけなのかと思ってました。
実は計算式や関数を含むCSVを読み込んで、評価してくれるんですね。
今さらこれを知っても、何かに使える気はしないけど…。
Re: (スコア:0)
01
のような頭の 0 が、ただの CSV だと消えてしまいますが、
="01"
のように式で表現すると 01 と 0 つきで表示されます。
多分こんな感じで他にも応用がありそう……
Re: (スコア:0)
内部的にはあくまで式で、文字列の 01 じゃないので使いたくないなぁ。
Re:保存時は値にしちゃうけど (スコア:0)
内部的にはあくまで式で、文字列の 01 じゃないので使いたくないなぁ。
文字列で入れたいなら、`01 では?
Re: (スコア:0)
それだと区切り文字が入力できないんで="文字列"の形にした上で文字列内の二重引用符などをエスケープ(二重にすればいいんだったかな)するのが一番駄目文字の少ない方法だった気がする。
Unicode文字への対応も含めると、カンマ区切りのCSVをUnicodeにしても駄目で、
タブ文字区切りのTSVをUnicodeで保存して拡張子CSVにすれば一発で自動認識されるんだったかな。
Re:保存時は値にしちゃうけど (スコア:2)
Unicode対応は、先頭にBOMをいれるだけでいいよ。
Re: (スコア:0)
そうすると「,」がセパレータとして認識されないんスよ。
新しいやつだと行けるのかもしれんけどOffice 2010あたりではそうなってた。
今手元にあったOffice 2003(古っ)でも同じ。
外部データの取り込みでやればいけるんだけど自動認識だと強制でタブ文字区切り。
ファイルの保存で出てくる選択肢に準拠してるっぽくてキャラクタ系のこの選択肢は実は3つしか無い。
「テキスト(タブ区切り)(*.txt)」「Unicodeテキスト(*.txt)」「CSV(カンマ区切り)(*.csv)」
Unicode(BOM付き)の時点で拡張子は無視で「Unicodeテキスト」になってて
「テキスト(タブ区切り)」のUnicode版だからタブ区切りな感じ。
なのでBOMつけて、「U+0009」で区切って、各項目を文字列を示す式にして、式の中で適宜エスケープする必要がある。