こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perlでエクセルからテキストファイル生成

Perlを使い、エクセル表からデータを読み込みテキストファイルを生成したいと思っています。
Perlについて知識はほとんどありません。
サンプル記述等で教えていただけたら助かります。

下記のようなエクセル表があるとします。
<"PARAMETER.xls">
  A    B   C
+-------+------+--------+
1| XXX | 32 | 0000 |
+-------+------+--------+
2| YYY |  8 | 000A |
+-------+------+--------+
3| ZZZ | 16 | 1000 |
+-------+------+--------+
4|    |  8 | 000A | (注)"A"列には記入が無いので無視。
+-------+------+--------+
5| WWW | 32 | F000 |
+-------+------+--------+

エクセル表を読み込み、下記の変換方法に従い
テキストファイルを生成したいのです。

●変換方法(基本構文)
---------------------------------
if(DTin = "C") <--"C" 列のデータと比較します。
"A" = DTout("B-1":0); <--"A" 列の変数名に、"B-1"の値を代入します。
<-- 改行します。
---------------------------------

変換後 生成されたファイルは下記を考えています。
◆生成ファイル "Source.txt"
----------------------------------
if(DTin = 0000)
XXX = DTout(31:0);

if(DTin = 000A)
YYY = DTout(7:0);

if(DTin = 1000)
ZZZ = DTout(15:0);

if(DTin = F000)
WWW = DTout(31:0);

----------------------------------
(注)4行目の"A"列には記入が無いので無視します。

以上、ざっくりとした説明で申し訳ありませんが、
よろしくお願いいたします。

投稿日時 - 2010-03-04 20:41:37

QNo.5725052

困ってます

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

> Perlについて知識はほとんどありません。
ですと、ちょっと辛いと思います。

Excelのシートを読む方法はありますが、初心者では取っつきにくいので、お勧めできません。(まず、そのためのモジュールをインストールしなければならないでしょう)

なので、一旦テキスト形式で保存して、それを操作するのが楽です。
カンマが使われていないのならCSV形式が便利です

while(<>) { # 一行ずつ読み込む
chop ; #改行文字を削除する
@a=split(/,/); #カンマで分割して配列に入れる
# $a[0] : A列、$a[1]: B列 $a[2]: C列....となる
if ( $a[0] ne '' ){
#A列が空でなければ出力
printf "if(DTin = %s)\n%s = DTout(%d:0);\n\n",$a[2],$a[0],$a[1]-1;
}
}

実行は
perl PARAMETER.csv > Source.txt

投稿日時 - 2010-03-04 21:38:37

お礼

回答ありがとうございました。
参考にして勉強します。

投稿日時 - 2010-03-06 01:53:20

ANo.1

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問