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"列には記入が無いので無視します。
以上、ざっくりとした説明で申し訳ありませんが、
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
> 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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
VBマクロ 色の付いたセルを...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
エクセル VBA ユーザーフォー...
-
VBA A列にありB列にないものま...
-
B列の最終行までA列をオート...
-
複数処理 Worksheet_Change(ByV...
-
超難 日付に対するクロス集計
-
文字列の結合を空白行まで実行
-
VBA 値と一致した行の一部の列...
-
空白セルをとばして転記
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA intersect colu...
-
VBAのFind関数で結合セルを検索...
-
オートフィルタをマクロで作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報