pb de transition excel[resolu]

pb de transition excel[resolu] - Perl - Programmation

Marsh Posté le 02-06-2006 à 08:57:25    

Voila mon pb j'ai un fichier excel qui se présente sous cette forem:
 
|52345|To121234a123 stg123425GDF To546624b2546 ...|
|23654|...
 
Mon but est de prendre chaque ligne et de les mettre dans un nouveau classeur sous cette forme:
|52345|To121234|a1|23|
|52345|To546662|b2|546|
|23654|...
 
Comme vous le voyez je ne doit pas prendre les stg, j'ai un bou de code qui me met dans un fichier texte les infos mais il me manque l'id (52345) qui est quand même très importante et la séparation du a et du b.
 
voila mon code:
 

Code :
  1. # !usr/perl/bin/
  2. # Modules nécessaires
  3. use strict;
  4. use Spreadsheet::WriteExcel;
  5. use warnings;
  6. use Win32::OLE qw(in with);
  7. use CGI::Carp qw(fatalsToBrowser);
  8. use Win32::OLE::Const 'Microsoft Excel';
  9. $Win32::OLE::Warn = 3;
  10. # Type de contenu pour le navigateur
  11. print "Content-Type: text/html; charset=utf-8\n\n";
  12. # Création d'une nouvelle instance du package pour Excel
  13. my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
  14. # Ouverture du fichier Excel "C:\\stat.xls"
  15. my $Book = $Excel->Workbooks->Open("C:\\Documents and Settings\\Mes documents\\sandra\\test.xls" );
  16. # Affectation du 1er classeur à la variable $Sheet
  17. my $Sheet = $Book->Worksheets(1);
  18. # Récupération des valeurs de toutes les cellules comprises entre B2 et B10
  19. my $array = $Sheet->Range("B2:B10" )->{'Value'}; # get the contents
  20. # Récupération des valeurs de toutes les cellules comprises entre A2 et A10
  21. my $array2 = $Sheet->Range("A2:A10" )->{'Value'}; # get the contents
  22. my $Sheet2 = $Book->Worksheets(2);
  23. $Book->Close;
  24. # Affichage de ces valeurs
  25. foreach my $ref_array (@$array) {
  26.        # Parcours de chaque ligne
  27.        my $j=0;
  28.        foreach my $scalar (@$ref_array) {
  29.              # Parcours
  30.               my $fichier= "C:\\Documents and Settings\\Mes documents\\sandra\\test.txt";
  31.               open F, ">>$fichier"; # ouverture en ajout dans un fichier existant
  32.               print F "--------------------------------------------------------\n";
  33.               close F;
  34.               print "--------------------------------------------------------";
  35.                   foreach my $word ( split(' ',$scalar) ) {
  36.                       if ($word =~ /STG|AP/) { # commence par S ou par A
  37.                       print "Alors on continue\n";
  38.                       }
  39.                       else{
  40.                         if($word =~ /^-/){
  41.                         $word=substr($word, 1);
  42.                         }
  43.                         #my $indic = index ()
  44.                         #my @indic_etat=( split('A',$word) );
  45.                         #print "@indic_etat\n";
  46.                         #print @$array2[2];
  47.                         #my $ajout = "$array ";
  48.                         #$word = $ajout . $word;
  49.                       print "$word\n";
  50.                       #my $row=2;my $col=2;
  51.                       #$Sheet2->write($row, $col, "Hi Excel!" );
  52.                         my $fichier= "C:\\Documents and Settings\\Mes documents\\sandra\\test.txt";
  53.                         open F, ">>$fichier"; # ouverture en ajout dans un fichier existant
  54.                         print F "$word\n"; # écriture de $chaine dans le fichier
  55.                       }
  56.              }
  57.             $j++;
  58.        }
  59. }
  60. close F;
  61. print "Open Perl IDE Test finished.\n";


 
 
Je me sert d'un code existant pour ouvrir les fichier excel merci d'avoir pris le temps de lire
 
 
Si quelqu'un veut savoir comment qu'il me demande


Message édité par Lanfeust42 le 02-06-2006 à 15:58:18
Reply

Marsh Posté le 02-06-2006 à 08:57:25   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed