j'ai déja poster se message ailleur sans répondse pour le moment donc je la pose ici aussi:
Donc voila, j'ai un problème hier mon code marchai nikel, aujourd'hui je le relance et pouf il marche plus: aider moi s'il vous plai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 # !usr/perl/bin/ # Modules nécessaires use strict; use Spreadsheet::WriteExcel; use warnings; use Win32::OLE qw(in with); use CGI::Carp qw(fatalsToBrowser); use Win32::OLE::Const 'Microsoft Excel'; $Win32::OLE::Warn = 3; use Cwd; my $dir = cwd; chdir $dir; my @ListeXLS = <*.xls>; foreach my $xls (@ListeXLS) { print "$xls"; # Création d'une nouvelle instance du package pour Excel my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # Ouverture du fichier Excel "C:\\stat.xls" my $Book = $Excel->Workbooks->Open("$xls") || die "Fichier non trouvé"; # Affectation du 1er classeur à la variable $Sheet my $Sheet = $Book->Worksheets(1); # Récupération des valeurs de toutes les cellules comprises entre B2 et B10 my $array = $Sheet->Columns(81)->{'Value'}; # get the contents # Récupération des valeurs de toutes les cellules comprises entre A2 et A10 my $array2 = $Sheet->Columns(1)->{'Value'}; # get the contents $Book->Close; $xls =~ s/.xls/ org.txt/; my $scalar2="01"; my @indent; my $z; foreach my $ref_array2 (@$array2) { # Parcours de chaque ligne foreach $scalar2 (@$ref_array2) { if ($scalar2 eq $z){ goto FINBOUCLE; } else{ push (@indent,$scalar2); } } } FINBOUCLE: my $j=0; # Affichage de ces valeurs foreach my $ref_array (@$array) { # Parcours de chaque ligne foreach my $scalar (@$ref_array) { # Parcours print "--------------------------------------------------------\n"; if($indent[$j]){ if ($scalar eq "") { open F, ">>$xls"; # ouverture en ajout dans un fichier existant print F "$indent[$j] "; print F "no patentee\n"; # écriture de $word dans le fichier } else{ foreach my $word ( split(';',$scalar) ) { print "$indent[$j] "; print "$word\n"; open F, ">>$xls"; # ouverture en ajout dans un fichier existant print F "$indent[$j] "; print F "$word\n"; # écriture de $word dans le fichier } } $j++; } else{goto FINFIC;} } } close F; FINFIC: }
l'erreur est à l'ouverture du fichier et renvoi ceci:
[Thu Jun 15 10:14:24 2006] extract_org.pl: OLE exception from "Microsoft Office Excel":
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: 'convertir.xls' introuvable. Vérifiez l'orthographe du nom du classeur et la
[Thu Jun 15 10:14:24 2006] extract_org.pl: validité de l'emplacement.
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: Si vous essayez d'ouvrir le fichier à partir de la liste des fichiers les
[Thu Jun 15 10:14:24 2006] extract_org.pl: plus récents, assurez-vous que le fichier n'a pas été renommé, déplacé ou
[Thu Jun 15 10:14:24 2006] extract_org.pl: supprimé.
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: Win32::OLE(0.1702) error 0x800a03ec
[Thu Jun 15 10:14:24 2006] extract_org.pl: in METHOD/PROPERTYGET "Open" at extract_org.pl line 22
le fichier existe bien sur.
Partager