2010-03-18 4 views
3

J'ai essayé le programme suivant pour écrire le contenu dans Spreadsheet. J'ai également téléchargé le paquet Spreadsheet_Excel_Writer. Mais lors de l'exécution de ce programme php, j'ai eu l'erreur fatale suivante:Problème de chemin d'accès Spreadsheet_Excel_Writer

<?php 
ini_set('include_path','/xhome/rekha/public_html/PHP_FORUM/PHP/open_office/Spreadsheet_Excel_Writer-0.9.2/Spreadsheet/Excel/Writer.php'); 

$workbook = new Spreadsheet_Excel_Writer(); 
$workbook->send('grades.xls'); 
$format_bold =& $workbook->addFormat(); 

$format_bold->setBold(); 

$worksheet =& $workbook->addWorksheet(); 

$worksheet->write(0, 0, "NAME", $format_bold); 
$worksheet->write(0, 1, "MARK1", $format_bold); 
$worksheet->write(0, 2, "MARK2", $format_bold); 
$worksheet->write(0, 3, "MARK3", $format_bold); 
$worksheet->write(0, 4, "MARK4", $format_bold); 
$worksheet->write(0, 5, "MARK5", $format_bold); 
$worksheet->write(0, 6, "TOTAL", $format_bold); 

$workbook->close(); 
?> 

Fatal error: Class 'Spreadsheet_Excel_Writer' not found in /xhome/rekha/public_html/PHP_FORUM/PHP/open_office/spread.php on line 4 
Call Stack 
# Time Memory Function Location 
1 0.0003 59868 {main}() ../spread.php:0 

J'ai essayé de résoudre cette erreur. Mais je ne peux pas. S'il vous plaît quelqu'un peut-il m'aider à résoudre cette erreur.

Répondre

3

vous devrez inclure la bibliothèque, sinon PHP ne reconnaîtra pas la classe Spreadsheet_Excel_Writer.

Et vous devrez également spécifier un chemin pour le include_path, au lieu d'un fichier. Et généralement, il est recommandé d'ajouter votre nouveau chemin au chemin existant. Donc, vous devrez d'abord récupérer le include_path actuel et ajouter votre nouveau chemin à celui-ci.

Cela devrait fonctionner:

<?php 
ini_set('include_path',ini_get('include_path').':/xhome/rekha/public_html/PHP_FORUM/PHP/open_office/Spreadsheet_Excel_Writer-0.9.2/'); 

require_once 'Spreadsheet/Excel/Writer.php'; 

$workbook = new Spreadsheet_Excel_Writer(); 
$workbook->send('grades.xls'); 
$format_bold =& $workbook->addFormat(); 

$format_bold->setBold(); 

$worksheet =& $workbook->addWorksheet(); 

$worksheet->write(0, 0, "NAME", $format_bold); 
$worksheet->write(0, 1, "MARK1", $format_bold); 
$worksheet->write(0, 2, "MARK2", $format_bold); 
$worksheet->write(0, 3, "MARK3", $format_bold); 
$worksheet->write(0, 4, "MARK4", $format_bold); 
$worksheet->write(0, 5, "MARK5", $format_bold); 
$worksheet->write(0, 6, "TOTAL", $format_bold); 

$workbook->close(); 
?> 

Et il semble que vous avez téléchargé la source du Spreadsheet_Excel_Writer et installé manuellement dans votre projet.

Je vous suggère d'utiliser l'installateur PEAR, inclus avec PHP pour installer ce paquet. Les bibliothèques PEAR sont généralement incluses par défaut via le chemin par défaut include_path. Vous ne devriez donc avoir besoin que de l'instruction 'require_once'. pas besoin de changer le include_path.

entrez juste sur la ligne de commande:

pear install Spreadsheet_Excel_Writer-beta 

Une fois que vous avez installé la bibliothèque avec succès en utilisant PEAR, vous pouvez supprimer la ligne de ini_set de votre script.

Espérons que cela résout votre problème.

D'autres informations concernant PEAR: http://pear.php.net/manual/en/guide.users.commandline.cli.php

2

Je l'ai utilisé cette bibliothèque avant, mais un meilleur est PHPExcel qui prend en charge plus XLS récente et les formats de fichiers XSLX.

Questions connexes