• ベストアンサー

CSV形式のファイルをメールに変換したい

早速ですが、やりたい事を例示します。  1.以下の様なフォーマットのCSVファイルがあります。    山田太郎,男,昭和49年1月1日,東京都  2.これを以下の様なテキスト形式のメールに変換したいのです。    (メール本文を以下の様にしたいです)    名前:山田太郎    性別:男    生年月日:昭和49年1月1日    出身地:東京都    つまり、:より左の名前とか性別は固定で入って、:より右に    ついてはCSVファイルの内容を自動的に入力したいのです。 エクセルとかメーラーの機能だけでは出来なさそうなので1回HTMLなどに 変換してCGIなどで生成すべきなのでしょうか? また、フリー、シェアウエアでこの様な機能があるものでも構いません。 情報をよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

CGI(Perlスクリプト)からCSVファイルを読み込んで カンマ毎に分割してメール本文を作成し、送信… という形になるかと思います。 もしくはエクセル形式で保存しなおしてDBを操作できる言語(ASP、PHP等)で読み込んで本文を作成して送信… とか、いかがでしょう? そういった動作をしてくれるアプリケーションは 知らないのでお力になれず残念ですが…。

redsky
質問者

お礼

早速のご回答、ありがとうございます。 CGIでは何となくできるかなって思ってましたが、 他にもASP,PHPなどの選択肢がありましたか。 こちらの方もちょっと調べてみます。 ありがとうございました。

その他の回答 (1)

noname#83007
noname#83007
回答No.2

メールに変換したいというのがよく分かりませんが、csvのデータをおっしゃる通りのテキストに変換することは簡単です。 AWKを使った場合。 --------------------------------- { split($0, s, ","); printf("名前:%s\n", s[1]); printf("性別:%s\n", s[2]); printf("生年月日:%s\n", s[3]); printf("出身地:%s\n", s[4]); } --------------------------------- です。 私は、awkとcopalの組合わせでテキスト処理をしています。

redsky
質問者

お礼

awkですかぁ。ちょっと調べてみたらテキスト編集用の 言語みたいですね。 知らなかったです。 その後、いろいろ考えたのですが、一応PHPを使って やる方法が現在の私の環境では一番早い気がしたので とりあえずPHPで挑戦してみます。 皆様、どうもありがとうございました。

関連するQ&A

  • テキストファイルの文字操作の仕方

    下記の[元データ]ようなテキストファイルのデータをCSV形式の データとして取り扱いたいのですが、[処理後]のように 変換する良い方法はないでしょうか? 何らかしらのプログラミングが必要になるかと思いますが ご教授いただければ幸いです。 どうかよろしくお願い致します。 [元データ] 出身地:東京 名前:山田太郎 性別:男 年齢:26歳 生年月日:1976年1月1日 出身校:東京大学 住所:東京都杉並区 電話:03-0000-0000 FAX:03-0000-0001 出身地:埼玉 名前:鈴木一郎 性別:男・・・・(以下同様) [処理後] 東京,山田太郎,男,26歳,1976年1月1日,東京大学,東京都杉並区,03-0000-0000,03-0000-0001 埼玉,鈴木一郎,・・・

  • CSV形式のファイル名をCSVの先頭に入れる方法

    EXCEL CSV形式のファイル名をCSVファイルの先頭に入れるたいのですが,EXCELのマクロやBVなどで簡単にできるよい方法はないでしょうか。 例えば, ファイル名:  123_001.csv 123_001.csvの内容:  氏名,年齢  山田,25歳    ↓ の123_001.csvを  コード,氏名,年齢  123_001,山田太郎,25歳 というデータにしたいのです。 できれば,フォルダ内に保存されているCSVファイルを一括で処理したいのですが...。 例) 123_001.csvの内容:  氏名,年齢  山田,25歳 123_002.csvの内容:  氏名,年齢  吉田,30歳 123_003.csvの内容:  氏名,年齢  鈴木,50歳    ↓ 123_001.csvの内容:  コード,氏名,年齢  123_001,山田,25歳 123_002.csvの内容:  コード,氏名,年齢  123_002,吉田,30歳 123_003.csvの内容:  コード,氏名,年齢  123_003鈴木,50歳 よろしくお願いします。

  • ExcelでUTF-8のcsvデータを表示するには

    あるデータベースから出力したCSV形式のデータがあるのですが、 文字コードがUTF-8なので、直接Excelで開くと文字化けがあります。 なので、一度出力したcsvファイルの拡張子をtxtに変えて、 それをExcelから開くという作業をして対応しています。 (そうすると文字コードが選択できるので) しかしcsvをtxtに変えてExcelで開くと、 思いもよらぬところで改行されてしまい、 正しくデータが表示されません。 例)csvでそのまま開いたとき ユーザーコード 苗字 名前 住所 001    山田 太郎 東京都大田区鵜の木 1-2-3 002    高橋 愛子 東京都港区六本木2-3-4 ↓ txtに変換したのちにexcelで開いたとき ユーザーコード 苗字 名前 住所 001    山田 太郎 東京都大田区鵜の木 1-2-3                  ←余計な改行が発生 002    高橋 愛子 東京都港区六本木2-3-4 これを回避するために、一度csvで開いて、 セル内改行コードを空白と置き換えるという作業をしたのですが、 それでも上記のような改行が発生してしまっています。 UTF-8のcsvを文字化けなくExcelで開く方法は他にはないでしょうか? また上記方法の改善点はありますでしょうか? ご助言宜しくお願いします。

  • CSV形式のファイルには、どのような機能?特徴?が

    CSV形式のファイルには、どのような機能?特徴?があるのでしょうか? よく、データをエクスポートするときに、CSVに変換できるようなのですが、 すべて、エクセルで開けるよにするためにこの形式に変換させるのでしょうか? 詳しい方教えて下さい。

  • CSV形式の並び替え

    いつも助言頂き感謝します。 CSVファイルに下記のように 名前,性別,年齢 を記述したファイルがあります。 これを配列にいれ、listとsplit でTABLEを表示させることは出来るのですが、取り込んだ配列を年齢の若い順に表示させるにはどのようにすれば良いでしょうか? $log_name = "/home/www/luzy.castsystem.jp/log/4.txt"; $array = file($logfile); $c = count($array); $i = 0; while($i < $c){ list($name,$sex,$age) = split("\,",$array[$i]); $i++; } 太郎,男,15 一郎,男,10 次郎,男,18 花子,女,17

    • 締切済み
    • PHP
  • CSVをテキストの表に変換

    csvデータをテキスト形式の表に変換できるフリーソフトを探しています。 以下のようなイメージです。 csvデータ 都道府県,市区,町村,郵便番号 東京都,千代田区,飯田橋,102-0072 東京都,千代田区,一番町,102-0082 東京都,千代田区,岩本町,101-0032 東京都,千代田区,内神田,101-0047 東京都,千代田区,内幸町,100-0011 ↓ テキストの表 ┌────┬────┬───┬────┐ │都道府県│市区 │町村 │郵便番号│ ├────┼────┼───┼────┤ │東京都 │千代田区│飯田橋│102-0072│ ├────┼────┼───┼────┤ │東京都 │千代田区│一番町│102-0082│ ├────┼────┼───┼────┤ │東京都 │千代田区│岩本町│101-0032│ ├────┼────┼───┼────┤ │東京都 │千代田区│内神田│101-0047│ ├────┼────┼───┼────┤ │東京都 │千代田区│内幸町│100-0011│ └────┴────┴───┴────┘ ※↑レイアウトが崩れていますが、等幅フォントで正しく見えればOKです。 こんなことが出来るソフトがあれば教えてください。

  • CSV検索

    CSV(カンマ区切り)でtest.csvに 1000K,山田太郎,経理課, 1010H,山田花子,秘書課 というファイルがあります。 一番左から社員番号、名前、所属・・・になってます。 検索で、社員番号を入力すると名前が表示されるCGIを探してます。 ちなみに社員番号は数字と英語の組み合わせです。 類似する機能のあるCGIをご存知の方宜しくお願いします。 OR Perlで、ある特定の文字列が含まれている行を返す構文かプログラムを挙げてください。 宜しくお願いします。

    • 締切済み
    • CGI
  • エクセルデータからCSVファイルへの変換について

    現在エクセルファイルにあるデータをCSVファイルへ変換する作業(エクセルでデータを作成して、保存時にCSVファイルを選択)をしているのですが、以下の例の場合うまく変換ができません・・・。 基本的な質問かもしれませんがどなたかご存知でしたら教えていただけると助かります。 よろしくお願いします。 【例】         (エクセル) ⇒  (CSV) うまくいく   12345     12345 うまくいかない 01234     1234 上記のようにエクセル上は文字列で管理されている ケースだとCSVファイルに変換した時数列に変換 され、上記例のうまくいかないケースのように 頭に0がある場合CSVだと0が消えてしまいます。 よろしくお願いします。

  • Excelファイルから住所宛名印刷をする方法

    Excelファイルから住所宛名印刷をするにはどうするのでしょうか? Excelファイルに沢山の宛名と氏名が記入されています。これを使って封筒に貼り付けられるように宛名印刷をしたいのですが、どうすればいいのか分かりません。 例)Excelファイル>>> 山田太郎 〒555-5555 東京都AAAAAAA 山田次郎 〒444-4444 横浜市BBBBBBB 山田花子 〒333-3333 大阪市CCCCCCC となっているのを宛名のフォーマットに合わせて _________________________ | | 〒555-5555 | 東京都AAAAAAA |   山田太郎  | _________________________ | | 〒444-4444 | 横浜市BBBBBBB |   山田次郎  |     : と自動的に変換して印刷したいのです。 ご存じの方、教えてください。

  • Excel ワークシート から csvファイルに変換するには?

    エクセルに記入された内容は各マスで区切られておりますが マスではなく「,」で区切られる csvに変換したいのですが これは可能でしょうか? 既に入力済みのエクセルシートから ファイル→名前を付けて保存→ファイルの種類→csv→保存 というようにしてエクセルからcsvに変換しようとしましたが 「選択したファイルの種類は複数のシートを含むブックをサポートしていません」 というエラーが出て、そこでOKを押すと 「CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります、この形式でブックを保存しますか?」 と出てきますのでここで「はい」をおすと ファイルの拡張子自体はcsvになるのですが カンマでの区切りではなく未だにエクセルのラインが残っております どうすればエクセルで区切られたマスをカンマに置き換える事ができるのでしょうか? 変換しようとした際に出てくるエラーに問題があるのでしょうか? そうだとしてもエラーの意味がわかりません… 教えてください よろしくお願いします