メールの本文から繰り返しの部分を抽出して、一行ずつCSVファイルに変換する方法を紹介します。
次のような注文メールをCSVファイルに変換する場合。
商品番号:A001
注文日:2010/9/1
氏名:佐藤一郎
商品名:パソコン
金額:100000円
個数:1
商品名:プリンタ
金額:30000円
個数:1
※商品名の数は不定
「D2 メール自動データベース変換ソフト」では、注文ごとに一行一注文でCSVファイルに変換することができます。
※商品数が不定の場合は、パラメータを多めに作成する必要があります。
| 商品番号 | 注文日 | 氏名 | 商品名1 | 金額1 | 個数1 | 商品名2 | 金額2 | 個数2 |
|---|---|---|---|---|---|---|---|---|
| A001 | 2010/9/1 | 佐藤一郎 | パソコン | 100000 | 1 | プリンタ | 30000 | 1 |
一方で、注文商品ごとに一行一商品でCSVファイルを作成する場合は、「D2 メール自動データベース変換ソフト」の繰り返し機能で繰り返し部分はCSVファイルにできましたが、繰り返さない部分(商品番号・注文日・氏名)はCSVファイルにできませんでした。
繰り返し部分と、繰り返しでない部分を別々にに取得することになります。
| 商品番号 | 注文日 | 氏名 |
|---|---|---|
| A001 | 2010/9/1 | 佐藤一郎 |
| 商品名 | 金額 | 個数 |
|---|---|---|
| パソコン | 100000 | 1 |
| プリンタ | 30000 | 1 |
今回、公開した「CSVMerge CSVファイル結合ソフト」を使用すると、別々に取得した繰り返し部分とそれ以外の部分を結合することができるようになりました。
繰り返し部分と繰り返さない部分を組み合わせて、次のようなCSVファイルを作成することができます。
| 商品番号 | 注文日 | 氏名 | 商品名 | 金額 | 個数 |
|---|---|---|---|---|---|
| A001 | 2010/9/1 | 佐藤一郎 | パソコン | 100000 | 1 |
| A001 | 2010/9/1 | 佐藤一郎 | プリンタ | 30000 | 1 |
このようなCSVファイルを作成する方法を紹介します。
D2の繰り返し機能を使う場合、本文は繰り返し部分しか取得できませんが、メールのヘッダーは取得することができます。
そこで、メールごとに異なるヘッダー「Message-Id:」を取得します。
| Message-Id: | 商品番号 | 注文日 | 氏名 |
|---|---|---|---|
| XXXXXX | A001 | 2010/9/1 | 佐藤一郎 |
| Message-Id: | 商品名 | 金額 | 個数 |
|---|---|---|---|
| XXXXXX | パソコン | 100000 | 1 |
| XXXXXX | プリンタ | 30000 | 1 |
「CSVMerge CSVファイル結合ソフト」を使って、この「Message-Id:」をキーとして2つのCSVファイルを結合します。

| Message-Id: | 商品番号 | 注文日 | 氏名 | Message-Id: | 商品名 | 金額 | 個数 |
|---|---|---|---|---|---|---|---|
| XXXXXX | A001 | 2010/9/1 | 佐藤一郎 | XXXXXX | パソコン | 100000 | 1 |
| XXXXXX | A001 | 2010/9/1 | 佐藤一郎 | XXXXXX | プリンタ | 30000 | 1 |
あとは、「nextCSV CSVファイル編集ソフト」を使って、不要な行を取り除いたり列を入れ替えたりして、CSVファイルを整えます。
| 商品番号 | 注文日 | 氏名 | 商品名 | 金額 | 個数 |
|---|---|---|---|---|---|
| A001 | 2010/9/1 | 佐藤一郎 | パソコン | 100000 | 1 |
| A001 | 2010/9/1 | 佐藤一郎 | プリンタ | 30000 | 1 |
D2、CSVMerge、nextCSVはいずれも自動実行バッチファイルで作業を自動化できます。
バッチファイルのコマンドを続けて記述することで、一連の作業も自動化することができます。


