時刻表データをCSVファイルに保存
1月末から、OuDiaの路線ファイル( .oudファイル)の時刻表データをCSVファイルに保存するツールの作成を開始しました。
このツールの開発は、OuDiaユーザー様からの、時刻表ビューの見栄えに関するご要望が発端になっています。例えば、
- グリーン車連結などのマークを入れたい
- 発着番線を入れたい。
- 駅間距離・始発駅からの距離を入れたい。
- 別線発もしくは別線着の列車について、 始発駅・終着駅の駅名・時刻を表示したい
といったことですね。
しかし、時刻表を美しくデザインして印刷するという要件に対しては、Microsoft Excelなどの在野の表計算ソフトを用いる方が、充実した対応ができると思います。というより、表計算ソフトは今や高機能化しており、OuDiaをいくら改良したところでExcelの表現力には到底及ぶものではありません。このため、僕としては、時刻表の見栄えに特化した改良にはあまり力を入れたくないのが正直なところです。
このため、このような要望に応えるべく、時刻表をCSVファイルに出力する機能をOuDiaに搭載しようと考えたわけです。
が、これを試作してみて重大な問題に気付きました。
列車本数の多い時刻表をCSV化してExcel2003で開いて見ると、こんなエラーメッセージが出てしまいました。
「ファイル全体を読み込むことができませんでした」
「Excel では、ワークシートごとに 65,536 行と 256 列のデータに制限されています」
「制限数を超えた行または列は自動的に切り捨てられ、構成可能ではありません。」
Excelにはこんな制約があったんですねえ。
でも、列車が横に並ぶ形式の時刻表では、列車本数=(横方向の)列数ということになります。列車本数の上限が256本では少なすぎです。これでは使い物になるはずもなく、私はこんなものを作るために2週間の週末を費やしたことを悔やみつつ、どうすればいいのかを思案するのでありました。
(多分)つづく
« CocoDiaが、OuDiaファイルの読み込みをサポート | トップページ | アフィリエイト始末記 »
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/186995/17950562
この記事へのトラックバック一覧です: 時刻表データをCSVファイルに保存:
Excel2007では確か表は拡張されてほぼ無制限になっていると思います。
2003以前での表示を考えるのなら、256行ごとに分割というのはどうでしょうか?
投稿: | 2008年2月 5日 (火) 13時22分
いつも楽しく使わせてもらっています。
時刻表をExcelで見られるようになるのはおもしろいですね。
完成を楽しみにしています!
投稿: E148 | 2008年2月 5日 (火) 20時14分
(無名)さん、情報ありがとうございます。
Excel2007では列数の制限が拡張されているんですか。
しかし、僕は手元にExcel2003しかないので、これで動作する形の仕様にするしかなさそうです。
現在は、CSV出力時に 『 [_]本目から[_]本目まで 』 という入力を可能にする方向で検討しています。
投稿: take-okm | 2008年2月 6日 (水) 21時53分