Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10823[/thread]

Excel bearbeiten mit WIN32::OLE

Leser: 6


<< >> 3 Einträge, 1 Seite
Gast Gast
 2007-11-19 12:18
#102556 #102556
Servus!
Ich hab da fragen bezüglich Excel bearbeiten mit WIN32. Ich will ein excel öffnen und hab immer eine Fehlermeldung:" 'test.xls' wurde nicht gefunden. &#9604;berpr³fen Sie die Rechtschreibung des Dateinamens und ³berpr³fen sie, ob der Ort der Datei korrekt ist."
Mein Code ist:
Code (perl): (dl )
1
2
3
4
5
6
7
my $myPlace = cwd();
my $filename = join('/',$myPlace,'test.xls'); 
my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || 
Win32::OLE->new('Excel.Application', 'Quit');  
my $Book = $Excel->Workbooks->Open($filename);
$Excel->Run("MyMacro");
$Book->Close;

Was mache ich da falsch?
Ausserdem, nach lange suche in Google bin ich nicht schlauer geworden, wie ich ein makro mit Parametern(z.B.: sub MyMacro(test as string) ) über Perl starten. Hat jmd vielleicht eine Idee?
Vielen Dank
renee
 2007-11-19 12:25
#102559 #102559
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schonmal geschaut, ob in $myPlace das drinsteht was Du erwartest?

Und dann mach mal:
Code (perl): (dl )
1
2
3
4
5
6
use File::Spec;

my $myPlace = cwd();
my $filename = File::Spec->catfile( $myPlace,'test.xls' ); 

print -e $filename ? "$filename existiert!\n" : "$filename existiert nicht!\n";
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2007-11-24 12:15
#102957 #102957
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gast+2007-11-19 11:18:05--
Code (perl): (dl )
my $filename = join('/',$myPlace,'test.xls'); 

Excel ist ein Windows-Programm, und kann mit den / nicht umgehen. Renee's Loesung mit File::Spec->cat muesste ausreichen. Die folgende Loesung wandelt jedoch auch gleich einen relativen in einen absoluten Pfad um, mit dem Excel auf jedem Fall gluecklich ist:

Code: (dl )
1
2
use Win32; # wird bei Activestate automatisch geladen
$filename = Win32::GetFullPathName( $filename );
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 3 Einträge, 1 Seite



View all threads created 2007-11-19 12:18.