使用PHPExcel更改列的大小

时间:2012-10-30 09:23:45

标签: php phpexcel column-sizing

我在使用PHPExcel时遇到了一些麻烦,

事实上,我已经阅读了我发现的所有教程,但它对我不起作用。

我已将此代码放在页面上:

$i = -1; // index des enregistrements

$objPHPExcel->setActiveSheetIndex(0);
$sheet->getColumnDimension('A')->setWidth(75);
$sheet->getColumnDimension('B')->setWidth(150);
$sheet->getColumnDimension('C')->setWidth(190);
$sheet->getColumnDimension('D')->setWidth(150);
$sheet->getColumnDimension('E')->setWidth(115);
$sheet->getColumnDimension('F')->setWidth(115);
$sheet->getColumnDimension('G')->setWidth(380);
$sheet->getColumnDimension('H')->setWidth(75);
$objPHPExcel->getActiveSheet()->SetCellValue('D1', '<img src="images/agenda.png" alt="AGENDA" width="168" height="24">');
$objPHPExcel->getActiveSheet()->SetCellValue('A3', 'Du '.$_REQUEST['date1'].' Au '.$_REQUEST['date2'].', Critères: '.$_REQUEST['tache'] );
$objPHPExcel->getActiveSheet()->SetCellValue('A5', 'CLIENT');
$objPHPExcel->getActiveSheet()->SetCellValue('B5', 'N° DE DOSSIER');
$objPHPExcel->getActiveSheet()->SetCellValue('C5', 'DEBITEUR');
$objPHPExcel->getActiveSheet()->SetCellValue('D5', 'TEL');
$objPHPExcel->getActiveSheet()->SetCellValue('E5', 'DATE');
$objPHPExcel->getActiveSheet()->SetCellValue('F5', 'TRAITEMENT');
$objPHPExcel->getActiveSheet()->SetCellValue('G5', 'DESCRIPTION');
$objPHPExcel->getActiveSheet()->SetCellValue('H5', 'RESTANT DU EN PPAL');

但它给了我以下错误:

注意:未定义的变量:第173行的工作表

注意:未定义的变量:第173行的工作表

我真的迷失了,我认为改变列大小就是这样。

非常感谢任何形式的帮助。

亲切的问候。

SP。

1 个答案:

答案 0 :(得分:3)

你必须在使用之前定义$ sheet,就像PHP中的任何变量一样,直到实际创建它才会存在;但您也希望它是您想要设置列宽的实际PHPExcel工作表。

所以

而不是

$objPHPExcel->setActiveSheetIndex(0);

使用

$sheet = $objPHPExcel->setActiveSheetIndex(0);

这是有效的,因为对setActiveSheetIndex()的调用返回活动工作表对象

将$ sheet定义为当前工作表后,您可以调用以设置列宽

修改

然后,您还可以简化从

设置单元格值的调用
$objPHPExcel->getActiveSheet()->SetCellValue('D1', '<img src="images/agenda.png" alt="AGENDA" width="168" height="24">

$sheet->SetCellValue('D1', '<img src="images/agenda.png" alt="AGENDA" width="168" height="24">

注意但是,在单元格中设置HTML标记只是将单元格设置为包含文本字符串,这不会在工作表中嵌入图像