Home » File Formats » Spreadsheet_Excel_Writer » Bug #2539
Method call to getXfIndex() fails
Details
| Submitted | 2004-10-15 16:12 UTC |
|---|---|
| From | jon dot bertsch at ucop dot edu |
| Status | Duplicate |
| Package | Spreadsheet_Excel_Writer |
| PHP Version | 5.0.1 |
| OS | Linux SUSE 9.1 |
| Roadmaps | (Not assigned) |
Comments
[2004-10-15 16:12 UTC] jon dot bertsch at ucop dot edu
Description:
------------
A spreadsheet is created but with an error
Reproduce code:
---------------
The spreadsheet contains;
<b>Fatal error</b>: Call to a member function
getXfIndex() on a non-object in <b>path_to_file/
spreadsheet/Writer/Worksheet.php</b> on line <b>1244</
b><br />
This is version 0.8, doesn't happen in 0.6 on my system
I commented out the if/else call to the function and
just left it with:
return(0x0F)
rather than this call:
return($format->getXfIndex());
The spreadsheet works so far, but...
Expected result:
----------------
Spreadsheet with expected content.
Actual result:
--------------
<b>Fatal error</b>: Call to a member function
getXfIndex() on a non-object in <b>path_to_file/
spreadsheet/Writer/Worksheet.php</b> on line <b>1244</
b><br />
[2005-02-22 10:18 UTC] smith at backendmedia dot com
The lines dont match up anymore in CVS. But it looks to me like the method should check for the proper class type instead:
function _XF(&$format)
{
if (is_a($format, 'Spreadsheet_Excel_Writer_Format') {
return($format->getXfIndex());
} else {
return(0x0F);
}
}
[2006-02-22 15:02 UTC] rainco at gmx dot net
I use version 0.9.0 on PHP5.1.2 and get a similar notice:
Object of class Spreadsheet_Excel_Writer_Format could not be converted to int in <path>/Spreadsheet/Excel/Writer/Worksheet.php line 1233
I think smith at backendmedia dot com is right. Further I think the default format should not be 0 but null.
[2006-03-08 18:02 UTC] eaflores at utep dot edu
I fixed this problem writing the following. I use php5.1.2
function _XF(&$format)
{
if (isset($format->xf_index))
{
return($format->get_xf_index());
}
else
{
return(0x0F);
}
}
[2006-03-20 23:38 UTC] cyrille37 at free dot fr
Perhaps the same as Bug #6509
Correction should be one of :
function _XF(&$format)
{
if( is_object($format) ){
return($format->getXfIndex());
} else {
return(0x0F);
}
}
or for PHP5 :
function _XF(&$format)
{
if( $format instanceof Spreadsheet_Excel_Writer_Format ){
return($format->getXfIndex());
} else {
return(0x0F);
}
}
PS: Thanks for that great package !