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 16/11/2010, 11h44   #1
Invité de passage
 
Inscription : mars 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 46
Points : 4
Points : 4
Par défaut [PhpExcel] problème de sauvegarde du fichier

Bonjour,

Actuellement, j'utilise PhpExcel pour transférer des informations d'une base de données vers un fichier excel 2003 mais je rencontre un problème pour la sauvegarde de ce fichier.

Le fichier que j'essaie de généré comporte une quantité d'information assez importante. c'est à dire 18000 lignes et 15 colonnes.

Dans un premier temps pour ce script j'ai du augmenter la valeur memory_limit dans le php.ini pour que le script lise toutes les informations dans ma base de données.

Le problème que j'arrive pas à résoudre est la fonction save de PhpExcel.
Puisque mon script s'arrête juste avant.

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
 
<?php
 
	$connect = mysql_connect("localhost", "root", "");
	mysql_select_db('entreprise');
 
	$sql = 'select * from ConvertCsvXls';
	$result = mysql_query($sql);
 
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel5.php';
 
$workbook = new PHPExcel;
 
$sheet = $workbook->getActiveSheet();
$cell = 1;
while ($donnees = mysql_fetch_array($result))
	{
		$sheet->getCell('A'.$cell)->setValueExplicit($donnees['champ1'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('B'.$cell)->setValueExplicit($donnees['champ2'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('C'.$cell)->setValueExplicit($donnees['champ3'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('D'.$cell)->setValueExplicit($donnees['champ4'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('E'.$cell)->setValueExplicit($donnees['champ5'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('F'.$cell)->setValueExplicit($donnees['champ6'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('G'.$cell)->setValueExplicit($donnees['champ7'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('H'.$cell)->setValueExplicit($donnees['champ8'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('I'.$cell)->setValueExplicit($donnees['champ9'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('J'.$cell)->setValueExplicit($donnees['champ10'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('K'.$cell)->setValueExplicit($donnees['champ11'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('L'.$cell)->setValueExplicit($donnees['champ12'], PHPExcel_Cell_DataType::TYPE_STRING);
		$sheet->getCell('M'.$cell)->setValueExplicit($donnees['champ13'], PHPExcel_Cell_DataType::TYPE_STRING);
 
		$cell++;
 
		echo "$cell.. </br>";
	}
echo "Génération du fichier en cours </br>";
$writer = new PHPExcel_Writer_Excel5($workbook);
echo "Ecriture du fichier</br>";
$records = 'fichier1.xls';
$writer->save($records);
echo "Génération fichier terminé";
?>
Donc arrivé à la dernière étape, je ne comprend pas d'où peut venir mon problème, est-ce que cela vient de mon serveur web ou de mon script ?

Merci d'avance.
breizhlama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 09h40   #2
Candidat au titre de Membre du Club
 
Inscription : janvier 2003
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 23
Points : 11
Points : 11
Envoyer un message via ICQ à mr-casimir
J'ai le même problème que toi . Je cherche à rajouter des données dans une feuille Excel de 3Mo. La fonction
Code :
$writer->save('I:\SYSTEMES & PROCESS GRANDS COMPTES\Integration_Tenders.xls');
me donne un
Code :
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes)
J'ai mis la valeur de post_max_size a 1G dans le php.ini mais ça ne résout pas le problème...
mr-casimir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 09h55   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2003
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 23
Points : 11
Points : 11
Envoyer un message via ICQ à mr-casimir
J'avance.
C'est memory_limit qu'il fallait modifier.
Maintenant j'ai juste un problème de 'Maximum execution time'. Une modification de cette variable permettra surement de m'en sortir.
mr-casimir est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h17.


 
 
 
 
Partenaires

Hébergement Web