Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2008, 10h26   #1
Membre du Club
 
Inscription : octobre 2004
Messages : 277
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 277
Points : 42
Points : 42
Envoyer un message via MSN à bb62
Par défaut 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 :
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
bb62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 11h23   #2
Membre du Club
 
Inscription : octobre 2004
Messages : 277
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 277
Points : 42
Points : 42
Envoyer un message via MSN à bb62
C'est bon j'ai trouvé,

en fait pour accéder à la 7ème feuille il faut faire :
Code :
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
bb62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h24.


 
 
 
 
Partenaires

Hébergement Web