Excelが入っていないPCでxlsファイルの読み出すには?

解決


Jun039  2009-06-06 22:16:28  No: 142019  IP: 192.*.*.*

ExcelがInstallしていないPCにてxlsファイルの
データ読み出しをする方法ってありますか?

やっぱり、csvに変換したもので処理するしか方法は
ないのでしょうか?

編集 削除
オショウ  2009-06-06 22:47:17  No: 142020  IP: 192.*.*.*

そのXLSファイルの中身は、不定形ですか?
それとも行方向にフォーマットが一定ですか?

データベース的に行がレコードの状態なら、ADO使って
データベースにアクセスするように読み出せます。

不定形なら・・・エクセルよりは安価な他者有償商品
を使うしかないでしょう。

以上。

編集 削除
Jun039  2009-06-06 23:05:34  No: 142021  IP: 192.*.*.*

>そのXLSファイルの中身は、不定形ですか?
>それとも行方向にフォーマットが一定ですか?

定型ですが、行のはじめからではなく、数行空けてデータが書かれています。
それ以降は行方向にフォーマットが一定なのですが、、、

既存のExcel一覧表なので、そちらのデータ自体は変えたくないです。

どうでしょうか?

編集 削除
オショウ  2009-06-06 23:41:26  No: 142022  IP: 192.*.*.*

残念ながら無理です。

エクセルを買うか、他有償アプリの購入をご検討下さい。

以上。

編集 削除
Jun039  2009-06-06 23:55:05  No: 142023  IP: 192.*.*.*

ありがとうございます。
そのExcelを別でcsv化したものを使用する方向で検討したいと思います。
いろいろとありがとうございました。

編集 削除
魔界の仮面弁士  2009-06-07 00:12:21  No: 142024  IP: 192.*.*.*

> ExcelがInstallしていないPCにてxlsファイルの
> データ読み出しをする方法ってありますか?
Excel 読み込みに対応したコンポーネントを購入した方が早いとは思いますが、
技術的には可能です。


方法の一つは、JET の Excel I-ISAM 機能を使って読み取るという物です。
これは、ADO(Provider=Microsoft.JET.OLEDB.4.0)もしくは DAO を通じて
読みとるという物です。(制限が多いので、万能な方法ではありませんが)
なお、この方法を使ったサンプルの多くは、シート名を指定して読みとる方式に
なっていますが、この場合、空行があるとうまく読み込めない事があるので、
今回の場合には、シート名とセル範囲を指定して取得する必要があります。


この方法が使えない場合には、xls ファイルの生のバイナリを扱うことになります。
手軽な方法では無いので、個人的にはあまりお奨めしませんけれどね。
(OLE構造化ドキュメントと、BIFF に関する知識が要求されるかと思います)

バイナリフォーマットが知りたい場合には、下記を参照してください。
http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx

また、BIFF8 で良ければ『Excel 97 Developer's Kit』にも記載があります。
(ただし、幾つかの誤りががありますが)
http://support.microsoft.com/kb/184647/
http://support.microsoft.com/kb/195237/

編集 削除