xlsファイルをtxtファイルへ変換するには?


超→初心者@クラーク  2006-01-15 05:04:55  No: 19626

初めまして、超→初心者@クラークともうします。
現在、悩みに悩んでいるので皆様の知恵を借りたいと思い
質問させていただきます。

現在、xlsファイルを読み込み各セル(1行)を一列にし、txtファイルに出力するプログラムを作成していて悩んでいます。
うまくxlsファイルを読み込ませ、txtファイルにする方法は無いでしょうか?
過去ログも調べ、いろいろを試して見たのですが、知識不足のためいまいち理解できていません。
xlsファイルをcsvファイルにして、読み込ます方法も試したのですが、
データに空欄があり、Comma.textで読み込むとスペースで区切られてしまい、うまく出力できませんでした。

xlsファイル(読み込み)    →   txtファイル(出力)
 |-A-|-B-|-C-|
 |123 |A A |TEXT|          1行目: 123 A A TEXT
-------------------
 |2222|VVVV|BBBB|          2行目: 2222VVVVBBBB

というような形にて出力したいと思います。

皆様のお力お貸しください。
よろしくお願いします。

OS:WIN2000  *  Delphi6


HOta  2006-01-15 06:13:12  No: 19627

どんな風に読み込み、どこが気に入らないのか
詳しく書いて頂かないと、答えようがありません。


超→初心者@クラーク  2006-01-15 20:34:58  No: 19628

HOtaさん、こんにちわ。

読み込み方としては、xlsファイルの1行目・Aセル→Bセル→Cセル
次に2行目・Aセル→Bセル→Cセル・・・ラスト行まで。
という風に読み込ませます。

よろしくお願いします。


HOta  2006-01-16 04:29:04  No: 19629

なにもソースを書いていないので、どのようにしているのか判りませんが、
  for i = 1 to ラスト行 do
  begin
    for j = 1 to 3 do
    begin
      セルの出力('''' + セルの内容 + ''',';)
    end;
    改行;
  end;


どやさ  2006-01-16 20:17:56  No: 19630

>データに空欄があり、Comma.textで読み込むとスペースで区切られてしまい
勝手にくぎったりせん。
区切るような読込してるんや。

どないなソースなんかわからへんので回答できまへん。
一般には
CSVテキスト(CSV「カンマ区切り」)やったら
TStringList で読み込んで
1ラインずつ処理する。
  S := StrList.Strings[i - 1];
各項目は
  GetS := (S, 1, Pos(',', LineStr) - 1);
スペースなんてまったく関係なし。


きりり  2006-01-16 21:56:48  No: 19631

> 勝手にくぎったりせん。
> 区切るような読込してるんや。

うーーん。
状況しだいでは勝手に区切ったように感じる場合もあるのでは?
私も過去にこれで悩んだことがありました。

ソースが掲載されてないので何ともいえませんが、
TStringListのCommaTextを用いているのであれば、
半角スペースも区切り文字として認識される仕様になってると思います。
(最新のDelphiは知りませんが、少なくても私が使っている6においてはそうです)

<参照レス>
https://www.petitmonte.com/bbs/answers?question_id=1611

質問者の文章を読む限り、xlsの読み込み自体は成功してるっぽいので、
あとは半角スペースの処理をどうするか?だけなのだと思います。

・・・またしても、どやさ氏への反論になってしまいましたが、
他意は無いのでご了承を。

それと、質問者の超→初心者@クラークさんも
ソースを出さず、たったこれだけの情報しか公開しないのであれば、
ほしい解答を得られないと思いますよ。
質問の仕方をもうちょっと考えましょう。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加