PHPExcel: How to Set the Width of Cells CodeUnit 12 JUL 2010

PHPExcel is a phenomenal Excel generating library for PHP which I have mentioned on this site numerous times before, and which is currently my defacto way for quickly knocking out all those annoying Excel downloads that clients always seem to MUST have! ;)

Today’s quick code tip is on how to specify or set the width of individual columns in your worksheet.

In order to do this, we make use of the handy setWidth function that allows us to specify the width of our targeted column using the standard Excel column width units.

So let’s see this in code then:

$workbook = new PHPExcel;
$sheet = $workbook->getActiveSheet();
$sheet->getColumnDimension('A')->setWidth(15);
$sheet->getColumnDimension('B')->setWidth(30);
$sheet->getColumnDimension('C')->setWidth(45);
$writer = new PHPExcel_Writer_Excel5($workbook);
header('Content-type: application/vnd.ms-excel');
$writer->save('php://output');

And there you go, as simple as that!

Related Link: http://phpexcel.codeplex.com

Related Posts:

About Craig Lotter

Software developer, husband and dad to two little girls. Writer behind An Exploring South African. I don't have time for myself any more.

  • Juan Carlos Horna

    Buen generador de archivos excel… recomendado

  • Longinustorwaldzki

    Thanks Man,

    good to have people like U in the Internet.

    luk

  • Appu

    Hi Craig

       I tried above example to set the cell width dynamically, it’s not working.  please suggest me how to set cell width dynamically with string value.

      Example:

     $val = “Welcome to PHPExcel” ;

     $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($col.$rowNumber)->setWidth(strlen($val));

      Please give me the response ASAP.

    Thanks,
    Appu.

    • I’m not sure, but your function linking looks suspect in the first place. getColumnDimensionByColumn doesn’t look like it will produce a column which you can then chain the setWidth onto. Also, strlen returns the number of characters of the string. Isn’t really the unit used to set the column width is it?