いつも参考にさせて頂いております。早速ですが質問させて頂きます。
ExcelファイルをADOでMSHFlexGridに表示しているのですが、1つのセルに
256文字以上入っているとカットされ読み込んでくれません。
256文字以上読み込むような方法はあるのでしょうか?
又は、別の方法でもいいのですがExcelのデータはプログラムのコードなので
' "" ; , 等が使用してある為にCSV等で読み込むにはちょっとやっかいかな
と思うのですが。
何かいい方法があればご教授願います。
ADO自身はOLEDBプロバイダをActiveX経由でラップするだけのオブジェクトですから、実際の問題はOLEDBプロバイダに何を使っているかによります。
一応わかる範囲だけ・・・
256文字の問題については、Excel自身がハンドリングする文字の最大長が、
1セルあたり256文字のようです。
データとしては保持していても表示・印刷されないなどのトラブルを
経験したことがあります。
Excelファイルをデータソースとして利用する場合の制限事項として
あきらめた方がよろしいかと。
ActiveX経由でExcel.Application自身を立ち上げて操作してやれば
データを取得することはおそらく可能ですが、Excelが入っているマシンでしか
動作しないという点と、速度面が問題になります。
カンマやダブルクォートについては、一度ExcelやAccessでCSV出力してみれば
速攻でわかりますが、これらのアプリではある程度のエスケープ処理が行われています。
・各フィールド(セル)はダブルクォートで囲まれ、ダブルクォート間のカンマはフィールド区切りのカンマとは区別されます。
・ダブルクォート(")のみエスケープ処理されて("")という形になります。
私自身はADO経由でCSV用のDBプロバイダを利用したことがないので
何ともいえませんが、一度実際に試してみてはいかがでしょうか。
その上で問題点を質問された方が話が進みやすいと思います。
早速の回答ありがとうございます。
Excelの方の制限事項だったのですね、表示しているし、保存・読み込みでも
カットされることがないので、てっきりADOの方と思ってしまいました。
もう一度方法を検討します。ありがとうございました。