2010-03-18 188 views
3

我试过以下程序将内容写入电子表格。 我也下载了Spreadsheet_Excel_Writer软件包。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(); 
?> 

但是,当运行这个PHP程序时,我得到了以下致命错误。

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 

我试图解决这个错误,但我不能。 请任何人都可以帮助我解决这个错误。

回答

3

你必须包含库,否则PHP将无法识别Spreadsheet_Excel_Writer类。

而且你还必须为include_path而不是文件指定路径。 通常最好的做法是将您的新路径附加到现有路径。因此,您首先必须检索当前的include_path并将新路径附加到该路径。

这应该工作:

<?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(); 
?> 

而且似乎你已经下载了Spreadsheet_Excel_Writer的来源,在项目中手动安装它。

我建议你使用PEAR安装程序,包含在PHP中来安装这个软件包。 PEAR库通常默认包含在默认的include_path中。所以你应该只需要'require_once'语句。不需要改变include_path。

只是在命令行中输入:

pear install Spreadsheet_Excel_Writer-beta 

一旦你已经成功地使用PEAR安装库,你可以从你的脚本中删除的ini_set行。

希望这可以解决您的问题。

关于PEAR进一步的信息: http://pear.php.net/manual/en/guide.users.commandline.cli.php

2

我用这个库之前,但一个更好的为PHPExcel支持最近XLS和XSLX文件格式。