Longueur dynamique d'un fichier xls. en perl
Résolu/Fermé
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
-
8 oct. 2007 à 13:57
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 9 oct. 2007 à 17:24
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 9 oct. 2007 à 17:24
A voir également:
- Longueur dynamique d'un fichier xls. en perl
- Fichier rar - Guide
- Tableau croisé dynamique - Guide
- Fichier host - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Fichier iso - Guide
6 réponses
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
9 oct. 2007 à 10:17
9 oct. 2007 à 10:17
Allez, svp de l'aide. Merci
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
9 oct. 2007 à 14:03
9 oct. 2007 à 14:03
Salut,
Allez, svp de l'aide. Merci
Encore toi?!!! ;-))
Je vais jeter un coup d'oeil :-)
Allez, svp de l'aide. Merci
Encore toi?!!! ;-))
Je vais jeter un coup d'oeil :-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
9 oct. 2007 à 14:09
9 oct. 2007 à 14:09
tu peux faire comme ça
Donc si la cellule de la colone 1 est vide le rang est sauté
Ca te conviens comme ça?
#!/usr/bin/perl
use strict;use warnings;
use Spreadsheet::ParseExcel;
open F,">>resultat.csv"
or die "E/S : $!\n";
#my $file = "keo4cUWzZ8_Test.xls";
my $file = "kflrssGMyz_Test.xls";
#my $file = "Test.xls";
my $excel = Spreadsheet::ParseExcel::Workbook->Parse($file);
my $sheet = ${$excel->{Worksheet}}[0];
foreach my $row (0 ... 65535){
next unless my $cell1 = $sheet->{Cells}[$row][0];
my $cell2 = $sheet->{Cells}[$row][1];
my $cell3 = $sheet->{Cells}[$row][2];
my $cell4 = $sheet->{Cells}[$row][3];
$cell4->{Val} =~s/[()]//g;
$cell4->{Val} =~s/\D//g;
$cell4->{Val} =~s/(?<=\d)(?=\d)/,/g;
# my $cell5 = $sheet->{Cells}[$row][4];
# my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};$cell5->{Val};";
my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};";
$res =~s/\n//;
$res =~s/\x01\x53/oe/g;
$res =~s/\x00//g;
print "$res\n";
}
__END__
Donc si la cellule de la colone 1 est vide le rang est sauté
Ca te conviens comme ça?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
9 oct. 2007 à 15:23
9 oct. 2007 à 15:23
ou
#!/usr/bin/perl
use strict;use warnings;
use Spreadsheet::ParseExcel;
my $nbligne;
open F,">>resultat.csv"
or die "E/S : $!\n";
my $file = "kflrssGMyz_Test.xls";
my $excel = Spreadsheet::ParseExcel::Workbook->Parse($file);
my $sheet = ${$excel->{Worksheet}}[0];
foreach my $row (0 ... eof){
$nbligne++ if my $cell1 = $sheet->{Cells}[$row][0];
}
foreach my $row (0 ... $nbligne){
my $cell1 = $sheet->{Cells}[$row][0];
my $cell2 = $sheet->{Cells}[$row][1];
my $cell3 = $sheet->{Cells}[$row][2];
my $cell4 = $sheet->{Cells}[$row][3];
$cell4->{Val} =~s/[()]//g;
$cell4->{Val} =~s/\D//g;
$cell4->{Val} =~s/(?<=\d)(?=\d)/,/g;
# my $cell5 = $sheet->{Cells}[$row][4];
# my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};$cell5->{Val};";
my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};";
$res =~s/\n//;
$res =~s/\x01\x53/oe/g;
$res =~s/\x00//g;
print "$res\n";
}
__END__
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
9 oct. 2007 à 17:07
9 oct. 2007 à 17:07
Ouais encore moi, lol.
J'ai pris ta solution 2 qui marche presque. A la place de eof dans ta boucle, j'ai rentré 65535, sinon il ne m'écrivait que les 2 premières lignes dans le csv.
Bon ben encore merci de ton aide. La prochaine fois, je te joins directement. Lol.
J'ai pris ta solution 2 qui marche presque. A la place de eof dans ta boucle, j'ai rentré 65535, sinon il ne m'écrivait que les 2 premières lignes dans le csv.
Bon ben encore merci de ton aide. La prochaine fois, je te joins directement. Lol.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
9 oct. 2007 à 17:24
9 oct. 2007 à 17:24
je te joins directement. Lol
tu peux toujours demander ici, ainsi la communauté peut profiter de la solution ;-))
tu peux toujours demander ici, ainsi la communauté peut profiter de la solution ;-))