-1

我在 Excel 中经常遇到这个问题。当您点击太多行或第一个单元格中有太多项目时,VBA 似乎会爆炸。我认为从现在开始使用 Perl 会更容易做到这一点。

表格中的数据:

1,2,3 Apples Smith
8 Orange Dog

想要表格中的数据:

1 Apples Smith
2 Apples Smith
3 Apples Smith
8 Orange Dog
...

我得到了结构......但不是所有的语法

$MYFILE = "mydata.txt";
open(MYFILE) or die("Could not open file.");
foreach $line (<MYFILE>) {

假设拆分列始终是第一个。由空格或制表符分隔的其他列。

有人可以提供一个 Perl 脚本示例来执行此操作吗?

4

1 回答 1

0

这是一个简单的 Perl 解决方案:

#!/usr/bin/perl

use strict;
use warnings;

my $MYFILE = "mydata.txt";

# this is the correct syntax for open. $! is the system error
open( my $in, '<', $MYFILE) or die "Could not open file: $!"; 

while( my $line= <$in>)
  { my( $nbs, $data)= split /\s/, $line, 2; # separate numbers from data
    my @nbs= split /,/, $nbs;               # get the list of numbers
    foreach my $nb (@nbs)                   # output each number and data
      { print "$nb $data"; }
  }
于 2013-07-30T06:55:34.607 回答