<?php

# Demonstrates Spreadsheet::WriteExcel's named colors and the Excel
# color palette.
#
# reverse('©'), March 2002, John McNamara, jmcnamara@cpan.org

# PHP port by Johann Hanne, 2005-11-01

set_time_limit(10);

require_once 
"class.writeexcel_workbook.inc.php";
require_once 
"class.writeexcel_worksheet.inc.php";

$fname tempnam("/tmp""colors.xls");
$workbook = &new writeexcel_workbook($fname);

# Some common formats
$center  =& $workbook->addformat(array('align' => 'center'));
$heading =& $workbook->addformat(array('align' => 'center''bold' => 1));

# Try this to see the default Excel 5 palette
# $workbook->set_palette_xl5();

######################################################################
#
# Demonstrate the named colors.
#

$colors = array(
                
'black'=>0x08,
                
'blue'=>0x0C,
                
'brown'=>0x10,
                
'cyan'=>0x0F,
                
'gray'=>0x17,
                
'green'=>0x11,
                
'lime'=>0x0B,
                
'magenta'=>0x0E,
                
'navy'=>0x12,
                
'orange'=>0x35,
                
'purple'=>0x14,
                
'red'=>0x0A,
                
'silver'=>0x16,
                
'white'=>0x09,
                
'yellow'=>0x0D
               
);

$worksheet1 =& $workbook->addworksheet('Named colors');

$worksheet1->set_column(0315);

$worksheet1->write(00"Index"$heading);
$worksheet1->write(01"Index"$heading);
$worksheet1->write(02"Name",  $heading);
$worksheet1->write(03"Color"$heading);

$i 1;

foreach (
$colors as $color=>$index) {
   
$format =& $workbook->addformat(array(
                                        
'fg_color' => $color,
                                        
'pattern'  => 1,
                                        
'border'   => 1
                                     
));

    
$worksheet1->write($i+10$index,                    $center);
    
$worksheet1->write($i+11sprintf("0x%02X"$index), $center);
    
$worksheet1->write($i+12$color,                    $center);
    
$worksheet1->write($i+13'',                        $format);
    
$i++;
}


######################################################################
#
# Demonstrate the standard Excel colors in the range 8..63.
#

$worksheet2 =& $workbook->addworksheet('Standard colors');

$worksheet2->set_column(0315);

$worksheet2->write(00"Index"$heading);
$worksheet2->write(01"Index"$heading);
$worksheet2->write(02"Color"$heading);
$worksheet2->write(03"Name",  $heading);

for (
$i=8;$i<=63;$i++) {
    
$format =& $workbook->addformat(array(
                                        
'fg_color' => $i,
                                        
'pattern'  => 1,
                                        
'border'   => 1
                                     
));

    
$worksheet2->write(($i -7), 0$i,                    $center);
    
$worksheet2->write(($i -7), 1sprintf("0x%02X"$i), $center);
    
$worksheet2->write(($i -7), 2'',                    $format);

    
# Add the  color names
    
foreach ($colors as $color=>$index) {
      if (
$i==$index) {
        
$worksheet2->write(($i -7), 3$color$center);
      }
    }
}

$workbook->close();

header("Content-Type: application/x-msexcel; name=\"example-colors.xls\"");
header("Content-Disposition: inline; filename=\"example-colors.xls\"");
$fh=fopen($fname"rb");
fpassthru($fh);
unlink($fname);

?>