Thread Win32::OLE auf dem pc gesucht: kann zwar modul finden gibt aber mehrere (92 answers)
Opened by sabrina at 2006-08-30 11:40

sabrina
 2006-08-30 18:34
#69344 #69344
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
ich weis, mit use bereite ich den pc sozusagen darauf vor, das im code "Win32::OLE" vorkommt oder nicht!?
Jetzt muss ich noch ganz normalen code schreiben damit ich eine ausgabe bekomme, soweit richtig?!
Kann mal jemand ueber mein code schauen und mir sagen ob ich was grundsaetzliches falsch mache, und ich einfach noch keinen guten code hinbekomme oder ob ich mal wieder was verwechselt habe?
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/perl
use Win32::OLE;
use warnings;
use strict;
my @data;
my $file      = 'lala.csv';
my $columns   = 5;
my $csv_file    = 'zieldatei.csv';

my $excel = Win32::OLE->new();
$excel->add_worksheet('Hoffnung');
open(my $fh,'<',$file) or die $!;               
           
while(my $line = <$fh>) {               
               
               
     
  chomp $line;               

my @array = (split(/[\t\s\\]/,$line))[0..($columns1)];  
  foreach (@array) {
      s/^\s+/;/g;                    
      s/\s+$/;/g;           
  } # foreach

  push(@data,[@array]);
} # while
close ($fh);

my $format = '';
for my $i(0..scalar(@{$data[0]})-1){        
  my $max = find_longest(map{$_->[$i]}@data);
  $format .= '%-'.$max.'s ';
} 
for my $entry(@data){
  print sprintf($format . "<<
",@$entry);
$excel->add_row('Hoffnung',$entry);
}
{
return $excel->output_to_file($csv_file);
return $longest;
}
 my $file2 = 'hoffnung_30_08_2006.csv';
    open($fh,'<',$file);
    open(my $dod,'<',$file2) or die "geht nicht!";
    open($dod,'>',$file2);
 while(<$fh>)
  {
 print  $dod @data;

   sub find_longest{               
               
               
            
  my $longest = 0;
  for(@_){
      my $length = length($_);
      $longest = $length if($length > $longest);
  }
  close ($dod);
  close ($fh);

Es gibt als fehlermeldung nur
Code: (dl )
Execution of excel.pl aborted due to compilation errors 

aber keine ausgabe.
Hab bestimmt was beim print oder return falsch!
Oder liegt es daran das ich die excel befehle nicht fuer OLE nehmen kann aber eigendlich dachte ich OLE waere genau fuer so was, als "ersatz" fuer Spreadsheet::WriteExcel.??
lg sabrina\n\n

<!--EDIT|sabrina|1156949024-->

View full thread Win32::OLE auf dem pc gesucht: kann zwar modul finden gibt aber mehrere