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 26/11/2010, 17h35   #1
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Par défaut [WriteExcel] Modifier un fichier existant

Bonjour tout le monde,

J'utilise la libraire WriteExcel pour créer et lire des fichiers Excel. Je suis sous Windows.

On me demande à présent de modifier un fichier Excel via WriteExcel (ajouter des colonnes et remplir les lignes correspondant à ces nouvelles colonnes).
Cela est-il possible ? Si oui, de quel manière car je cherche mais ne trouve rien ?

Merci d'avance!
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 09h55   #2
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Bonjour,

J'ai un peu avancé sur mon problème mais je me permet de revenir vers vous car j'ai un souci, voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
include('class.writeexcel_workbook.inc.php');
include('excel/class.writeexcel_worksheet.inc.php');
include('excel/functions.writeexcel_utility.inc.php');
 
$data = new Spreadsheet_Excel_Reader();
	$data->setOutputEncoding('CP1251'); 
 
	$data->read("test.xls"); 
 
	$workbook = &new writeexcel_workbook("test.xls");
 
	$workbook->sheets(0)->write(0, 19, 'Hello');
Mais voici l'erreur que je rencontre :
Citation:
Fatal error: Call to a member function write() on a non-object in D:\portail\pica\contenu\gestion_exp\expertise_contestation\test.php on line 22
Quelqu'un à une idée pour résoudre mon problème ?

Merci d'avance
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 09h52   #3
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Bonjour,

J'ai enfin trouvé la solution, voici le 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
include(RelativePathClass.'excel/class.writeexcel_workbook.inc.php');
include(RelativePathClass.'excel/class.writeexcel_worksheet.inc.php');
include(RelativePathClass.'excel/functions.writeexcel_utility.inc.php');	
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');	
$fichier = "Test.xls";
$data->read($fichier); // On lit le fichier "Test.xls".
$workbook = &new writeexcel_workbook("Test2.xls"); // On créé un second fichier nommé "Test2.xls".
$sheet = $data->sheets[0]; // On lit la feuille 1 du fichier "Test.xls".
$worksheet =& $workbook->addworksheet('test2'); // On créé un feuille sur le fichier "Test2.xls".
// On récupère les données par ligne puis par colonnes.
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
	for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
		// Si on as une données à la ligne et colonne correspondant 
		// alors on l'insère dans une variable puis on l'écrit sur notre nouveau fichier ("Test2.xls").
		if (isset($sheet['cells'][$i][$j])) {
			$donnees = $sheet['cells'][$i][$j];
			$worksheet->write($i-1, $j-1, $donnees,'');
		}
	}
}	
// On supprime le fichier d'origine (Test.xls).
unlink($fichier);
// On renomme le nouveau fichier "Test2.xls" en "Test.xls".
rename("Test2.xls", "Test.xls");
Cordialement.
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 18h42   #4
Invité de passage
 
Anthony
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Anthony

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 2
Points : 2
Bonjour,

J'espère que je serai entendu en postant ici.
Ce post est ce qui s'approche le plus de mon problème.

Je cherche moi aussi à écrire une série de donnée dans un fichier excel existant. En effet, j'ai un fichier Excel "matrice" contenant pléthore de macros censées travailler sur mes données une fois les données copiées.

Mon problème est qu'avec ta méthode, seules les données "brutes" cad, celles présentes dans le tableau peuvent être copiée. Connaissez vous donc une méthode permettant d'ouvrir un fichier dans le but de le réellement le modifier (et pas juste effectuer une copie).

NB : Je dev en php, j'utilise Wamp pour la bdd, j'utilise déjà l'objet COM pour créer un fichier Excel "neuf"

Dans tous les cas, merci et bonne soirée.
Riridesbois 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 21h25.


 
 
 
 
Partenaires

Hébergement Web