1. Introduction
  2. Formatting Tutorial
  3. Workbook::close
  4. Workbook::&addWorksheet
  5. Workbook::&addFormat
  6. Workbook::setCountry
  7. Workbook::&setTempDir
  8. Workbook::setVersion
  9. Workbook::setCustomColor
  10. Workbook::worksheets
  11. Worksheet::getName
  12. Worksheet::
    setInputEncoding
  13. Worksheet::select
  14. Worksheet::activate
  15. Worksheet::setFirstSheet
  16. Worksheet::protect
  17. Worksheet::setColumn
  18. Worksheet::writeCol
  19. Worksheet::writeRow
  20. Worksheet::setSelection
  21. Worksheet::freezePanes
  22. Worksheet::thawPanes
  23. Worksheet::
    hideScreenGridlines
  24. Worksheet::setPortrait
  25. Worksheet::setLandscape
  26. Worksheet::setPaper
  27. Worksheet::setHeader
  28. Worksheet::setFooter
  29. Worksheet::setMerge
  30. Worksheet::
    centerHorizontally
  31. Worksheet::
    centerVertically
  32. Worksheet::setMargins
  33. Worksheet::setMargins_LR
  34. Worksheet::setMargins_TB
  35. Worksheet::setMarginLeft
  36. Worksheet::
    setMarginRight
  37. Worksheet::setMarginTop
  38. Worksheet::
    setMarginBottom
  39. Worksheet::repeatRows
  40. Worksheet::repeatColumns
  41. Worksheet::printArea
  42. Worksheet::hideGridlines
  43. Worksheet::
    printRowColHeaders
  44. Worksheet::fitToPages
  45. Worksheet::
    setHPagebreaks
  46. Worksheet::
    setVPagebreaks
  47. Worksheet::setZoom
  48. Worksheet::setPrintScale
  49. Worksheet::write
  50. Worksheet::writeNumber
  51. Worksheet::writeString
  52. Worksheet::writeNote
  53. Worksheet::writeBlank
  54. Worksheet::writeFormula
  55. Worksheet::writeUrl
  56. Worksheet::setRow
  57. Worksheet::mergeCells
  58. Worksheet::insertBitmap
  59. Worksheet::setOutline
  60. Spreadsheet_Excel_Writer
  61. send
  62. rowcolToCell
  63. Format::setAlign
  64. Format::setVAlign
  65. Format::setHAlign
  66. Format::setMerge
  67. Format::setLocked
  68. Format::setUnLocked
  69. Format::setBold
  70. Format::setBottom
  71. Format::setTop
  72. Format::setLeft
  73. Format::setRight
  74. Format::setBorder
  75. Format::setBorderColor
  76. Format::setBottomColor
  77. Format::setTopColor
  78. Format::setLeftColor
  79. Format::setRightColor
  80. Format::setFgColor
  81. Format::setBgColor
  82. Format::setColor
  83. Format::setPattern
  84. Format::setUnderline
  85. Format::setItalic
  86. Format::setSize
  87. Format::setTextWrap
  88. Format::setTextRotation
  89. Format::setNumFormat
  90. Format::setStrikeOut
  91. Format::setOutLine
  92. Format::setShadow
  93. Format::setScript
  94. Format::setFontFamily

Worksheet::mergeCells

Worksheet::mergeCells – This is an Excel97/2000 method. It is required to perform more complicated

Synopsis

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::mergeCells ( integer $first_row , integer $first_col , integer $last_row , integer $last_col )

Description

This is an Excel97/2000 method. It is required to perform more complicated merging than the normal setAlign('merge'). It merges the area given by its arguments.

Parameter

  • integer $first_row - First row of the area to merge

  • integer $first_col - First column of the area to merge

  • integer $last_row - Last row of the area to merge

  • integer $last_col - Last column of the area to merge

Note

This function can not be called statically.

Example

Using mergeCells()

<?php

?>
This method is used to set the height and XF format for a row. (Previous) Insert a 24bit bitmap image in a worksheet. The main record required is (Next)
Last updated: Sat, 16 Feb 2019 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report.
View this page in:
  • English

User Notes:

Note by: jon@webteaminc.com
This example will show how to merge cells and maintain the formatting. The basic idea is to format the cells and then apply the merge.

<code>

<?php
// Include PEAR::Spreadsheet_Excel_Writer
require_once "Spreadsheet/Excel/Writer.php";
 
// Create an instance
$xls =& new Spreadsheet_Excel_Writer();
 
// Send HTTP headers to tell the browser what's coming
$xls->send("test.xls");
$xls->setVersion(8);
// Add a worksheet to the file, returning an object to add data to
$sheet =& $xls->addWorksheet('Binary Count');
$sum=0;


// Create the format of the merged cells
// Using setAlign('center') works best (same as 'align' => 'center) 
$format_a = array('bordercolor' => 'red',
            
'left' => 1
            
'bottom' => 1,
            
'right' => 1,
            
'top' => 1,
            
'bold'=>'1',
            
'size' => '14',
            
'color'=>'green',
            
'align' => 'center');

// Add the format. This could be done all together.
// I keep it separated for ease of use
$format =& $xls->addFormat($format_a);

// Now apply the format to the cells you want to merge
// This is the same as:
//    $sheet->write(1,0,'',$format);
//    $sheet->write(1,1,'',$format);
//    $sheet->write(1,2,'',$format);
//    $sheet->write(1,3,'',$format);
//    $sheet->write(1,4,'',$format);
// I just think it's cleaner
for($n=0$n<=5$n++) $sheet->write(1,$n,'',$format);

// Write in the title or whatever you want in the merged cells
$sheet->write(1,0,'My Sample Report',$format);

// Now apply the merge to the cells
$sheet->mergeCells(1,0,1,5);

/*
******************************************
* The rest of this just populates the sheet
* with some data and totals it up.
******************************************
*/

// Write some numbers
for ( $i=2;$i<15;$i++ ) {
 
// Use PHP's decbin() function to convert integer to binary
 
if($i == ) {
      
$format =& $xls->addFormat(array('bold'=>'1'
                              
'size' => 
                              
'12'
                              
'color'=>'red'));
     
$sheet->write($i,0,decbin($i), $format);
     } else {
     
$sheet->write($i,0,decbin($i));
    }
$sum $sum decbin($i);
}

$format_b = array('bordercolor' => 'blue',
            
'left' => 1
            
'bottom' => 1,
            
'right' => 1,
            
'top' => 1,
            
'bold'=>'1',
            
'size' => '14',
            
'color'=>'green');
                
$format =& $xls->addFormat($format_b);
$sheet->write($i,0,$sum,$format);


$format_c = array('bordercolor' => 'blue',
            
'left' => 1
            
'bottom' => 1,
            
'right' => 1,
            
'top' => 1,
            
'bold'=>'1',
            
'size' => '14',
            
'color'=>'green',
            
'align' => 'center'
            
);
$format =& $xls->addFormat($format_c);
$sheet->write($i,1,'TOTAL',$format);

// Finish the spreadsheet, dumping it to the browser
$xls->close();
 
?>

</code>
Note by: ullrich@cs.tu-berlin.de
mergeCells has to be called after the write method().

See: http://pear.php.net/bugs/bug.php?id=1239