dポイントプレゼントキャンペーン実施中!

<>で区切られたdatファイルをエクセルで管理したいです。
管理というか、1回だけ一括して項目を入力したいんです。

何か良い変換方法やツールなどはありませんか?

A 回答 (4件)

すみません。

↑のスクリプトを書いたものですが,少し間違ってました。
正しくは,下記のとおりです。
(具体的にはループの中のprint文がまずかったです。)

$file = "test-data.txt";

open IN,"<$file" or die $!;

while (<IN>){
chomp;
@a = split "<>",$_;
push @array,[@a];
}

for ( $i=0;$i<scalar(@array);$i++ ){
for ( $j=0;$j<scalar(@{$array[$i]});$j++){
print $array[$i][$j],",";
}
print "\n";
}

EXCELの質問をされていますが,このカテゴリはPerlのカテゴリなので,Perlのスクリプトでご回答させていただいていいのですよね?
    • good
    • 0

perl が使えるのであれば、コマンドプロンプトで変換元ファイルに cd


して (仮に、c:\tmp とします)、

c:\tmp> perl -pe 's/<>/,/g;' test-data.txt > test-data.csv

を実行して、エクセルで開けば良いかと。
(test-data.txt ファイル各行の「<>」を全て「,」に変換し test-data.csv に出力しています。)

変換元ファイルがあまり大きくないのであれば、エディタで一括置換
するのも不可能ではありません。
    • good
    • 0

こういうことでしょうか?



#test-data.txt-------------------
a1<>b1<>c1<>d1
a2<>b2<>c2<>d2
a3<>b3<>c3<>d3
a4<>b4<>c4<>d4
#--------------------------------

$file = "test-data.txt";

open IN,"<$file" or die $!;

while (<IN>){
chomp;
@a = split "<>",$_;
push @array,[@a];
}

for ( $i=0;$i<scalar(@array);$i++ ){
for ( $j=0;$j<scalar(@{$array[$i]});$j++){
print $array[$i][$j];
}
print "\n";
}

#結果
a1,b1,c1,d1,
a2,b2,c2,d2,
a3,b3,c3,d3,
a4,b4,c4,d4,

splitするときに,データを区切っている文字を指定すれば,たいていのデータは分割できます。
上記のようなスクリプトでいったんデータファイルを変換してから,取り込むというのはどうでしょう?
    • good
    • 0

テキストエディタなどで一度読み込んで、<>と,やタブで置き換えてからエクセルに読み込んじゃダメなのでしょうか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!