おれのIT日記
2004/03/28 (日)
ExcelにCSVを食わせたいとき
……こと自分の作業なら「Excelなんか使わんっ!」で終わりなのだが、仕事の場合、そうは行かない。
もしかすると世の中の大半のひとは、仕事やプライベートでデータをやりとりするときに、
「テキストで送ったら失礼だからWORD仕立てにしなきゃ」
「CSVじゃ粗末だからExcelにしなきゃ」
と信じているのだろうか。きっとそうだろう。
そんな世界でWebアプリ開発の仕事などすると、データもExcel用に送らにゃならんことになる。
Jakarta POIのお世話になってExcelブックを生成してしまうというソリューションには、何か自虐的な気持ちよさがある。(何が?)
あるいは、テキトーなContent-typeを設定して送りつけて、最初の一回目だけ、Excelを関連付けてもらって、いわば特定クライアントでExcelがあがるように「癖をつけてもらう」という手法も、どーせこんなくだらねー世界どーなってもいーやと放り出したような、突き抜けた解放感に溢れている(何書いているのか自分でもわからん)
……さて詳しい説明は省くがとにかく、Content-typeにtext/csvを指定して落とすことになったが、ここでExcelくんの困ったクセに遭遇する。といってもみなさんよくご存知のアレである。Excelくんは何でもかんでも、数値として解釈可能なものは数値として解釈してしまう。こう書くと字面だけは、何となくPerlに似てるが、"001"のように明示的にクォーテーションで囲ってあげても、勝手に数値扱いしてしまうのだから、実に困ったくんである。
text/plainで送りつければ、毎回インポートウィザード(だっけか)が立ち上がるようになる。これはこれで、「ウザイ」と言われて没になった。
おれはシステムエンジニアであって、Excelのインストラクタではない。
おれはIT業界で飯を食っている人間であって、アビバの先生ではない。
おれは(以下略)
とにかく、プロとしては、どうにかせねばなるまい。さて困った。
ところが、この回避策が、あっけなく見つかった。
="0123456789"
と書くのだ。"=0123456789"では駄目なのだ。
これはおれが見つけたのではない。最初に見つけたひとは偉いと素直に思う。それともどこかに書いてあるのか?
ほんっとうに、くだらねー!!!