IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Excel] Lire une feuille excel en php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut [Excel] Lire une feuille excel en php
    Bonjour,

    J'arrive à lire un fichier excel mais j'aimerai ouvrir une certaine feuille du fichier excel. Voici mon code :

    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
    85
    86
    87
     
    <?php
     
    require_once '../Excel/reader.php';
     
     
    // ExcelFile($filename, $encoding);
    $data = new Spreadsheet_Excel_Reader();
     
     
    // Set output Encoding.
    $data->setOutputEncoding('CP1251');
     
    /***
    * if you want you can change 'iconv' to mb_convert_encoding:
    * $data->setUTFEncoder('mb');
    *
    **/
     
    /***
    * By default rows & cols indeces start with 1
    * For change initial index use:
    * $data->setRowColOffset(0);
    *
    **/
     
     
     
    /***
    *  Some function for formatting output.
    * $data->setDefaultFormat('%.2f');
    * setDefaultFormat - set format for columns with unknown formatting
    *
    * $data->setColumnFormat(4, '%.3f');
    * setColumnFormat - set format for column (apply only to number fields)
    *
    **/
     
    $data->read('../Segmentation_Achats.xls');
     
    /*
    
    
     $data->sheets[0]['numRows'] - count rows
     $data->sheets[0]['numCols'] - count columns
     $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column
    
     $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell
    
        $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
            if 'type' == "unknown" - use 'raw' value, because  cell contain value with format '0.00';
        $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format
        $data->sheets[0]['cellsInfo'][$i][$j]['colspan']
        $data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
    */
     
    error_reporting(E_ALL ^ E_NOTICE);
    echo "<table border=1>";
    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    	$seg1 = $data->sheets[0]['cells'][$i][3];
    	$seg2 = $data->sheets[0]['cells'][$i][4];
    	$seg3 = $data->sheets[0]['cells'][$i][5];
     
     
    	if ($i==1){
    		echo "<tr>";
    			echo "<td>".$seg1."</td>";
    			echo "<td>".$seg2."</td>";
    			echo "<td>".$seg3."</td>";
    		echo "</tr>";
    	}else{
    			echo "<tr>";
    				echo "<td>".$seg1."</td>";
    				echo "<td>".$seg2."</td>";
    				echo "<td>".$seg3."</td>";
    			echo "</tr>";
    		}
     
    }
    echo "</table>";
    /*
    echo "".$data->sheets[0]['cells'][1][1]."<br>";
    echo "".$data->sheets[0]['cells'][1][2]."<br>";
    */
    //print_r($data);
    //print_r($data->formatRecords);
    ?>
    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    C'est bon j'ai trouvé,

    en fait pour accéder à la 7ème feuille il faut faire :
    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
     
    for ($i = 2; $i <= $data->sheets[6]['numRows']; $i++) {
     
    	$seg1 = $data->sheets[6]['cells'][$i][3];
    	$seg2 = $data->sheets[6]['cells'][$i][4];
    	$seg3 = $data->sheets[6]['cells'][$i][5];
     
    	$req = "select * from segments_achat where segment1='$seg1' and segment2='$seg2' and segment3='$seg3' ";
    	$resseg=mysql_query($req);
    	$nbseg=mysql_num_rows($resseg);
     
    	if ($nbseg==0) {
    		mysql_query("insert into segments_achat (segment1, segment2, segment3) values ('$seg1','$seg2','$seg3')");		
    	}
    }
    Donc ce qui change c'est sheets[6](pour la 7éme feuille) au lieu de sheets[0](pour la 1ere feuille)

    Bonne journée à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire une data queue en PHP
    Par sixfeetunder dans le forum AS/400
    Réponses: 4
    Dernier message: 19/02/2013, 16h16
  2. lire une feuille excel avec delphi sans excel ?
    Par dragonno dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/10/2010, 15h39
  3. problème pour lire une feuille excel a partir d'Access
    Par h_adil dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/07/2008, 23h44
  4. Réponses: 2
    Dernier message: 08/01/2008, 11h34
  5. Réponses: 1
    Dernier message: 05/03/2007, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo