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::setColumn

Worksheet::setColumn – Set the width of a single column or a range of columns.

Synopsis

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::setColumn ( integer $firstcol , integer $lastcol , float $width , mixed $format=0 , integer $hidden=0 )

Description

Set the width of a single column or a range of columns.

Parameter

  • integer $firstcol - first column on the range

  • integer $lastcol - last column on the range

  • float $width - width to set

  • mixed $format - The optional XF format to apply to the columns

  • integer $hidden - The optional hidden atribute

Note

This function can not be called statically.

Example

Using setColumn()

<?php
require_once 'Spreadsheet/Excel/Writer.php';

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

$radius 20;
$worksheet->setColumn(0,$radius*2,1);

// Face
for ($i 0$i 360$i++)
{
    
$worksheet->write(floor(sin((2*pi()*$i)/360)*$radius) + $radius 1floor(cos((2*pi()*$i)/360)*$radius) + $radius 1"x");
}
// Eyes (maybe use a format instead?)
$worksheet->writeURL(floor($radius*0.8), floor($radius*0.8), "0");
$worksheet->writeURL(floor($radius*0.8), floor($radius*1.2), "0");

// Smile
for ($i 65$i 115$i++)
{
    
$worksheet->write(floor(sin((2*pi()*$i)/360)*$radius*1.3) + floor($radius*0.2), floor(cos((2*pi()*$i)/360)*$radius*1.3) + $radius 1"x");
}

// hide gridlines so they don't mess with our Excel art.
$worksheet->hideGridLines();

$workbook->send('face.xls');
$workbook->close();
?>
Set the worksheet protection flag (Previous) Write an array of values as a column (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: adesst
Hi,

I've upload a workaround regarding setColumn() $format
issue.

You could check it here https://github.com/adesst/Spreadsheet_Excel_Writer

usage:

Apply XF format to a column using setColumn()
Then try to write something at any row of the column
without passing any $format to write()

...
$myformat = $Ws->addFormat(arrayOfYourDefinedFormat);
$Ws->setColumn($startcol = 1,$lastcol = 1, $width=20, $myformat);
$Ws->write($atAnyRow = 10, $col = 1, "Test here");

Expected Result:
String "Test Here" is printed at Row 10, Col 1, with
default style of column 1

Note: if you pass XF format to write() then it will be implemented instead of column format
Note by: Sergey Tzar (beotiger@mail.ru)
It seems that parameter mixed $format (the optional XF format to apply to the columns) doesn't work as it should. It does not apply any formatting to appropriate columns.
Is it a bug?
Note by: Brandon Bergren
It seems that the column width unit is "one character" in the "normal font."
See
http://support.microsoft.com/kb/214123