PHPExcel常用设置

设置单元格背景颜色及样式

$objPHPExcel->getActiveSheet()->getStyle( 'A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle( 'A1:E1')->getFill()->getStartColor()->setRGB('EFF3F6');

设置文本格式

大于10位的数字设置为文本格式,防止变为科学计数

$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicit('A1', '123456789123345', PHPExcel_Cell_DataType::TYPE_STRING);

设置字体

//设置默认字体
$objPHPExcel->getDefaultStyle()->getFont()->setName('宋体');

//设置单元格字体
$phpExcel->getActiveSheet()->getStyle("A1")->getFont()->setName('宋体');

//设置字体加粗
$objPHPExcel->getActiveSheet()->getStyle( 'A1')->getFont()->setBold(true);

//设置字体大小
$phpExcel->getActiveSheet()->getStyle("A1")->getFont()->setSize(10);

//设置字体颜色
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setRGB('FF0000');

//连贯设置
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('黑体')->setBold(true)->setSize(10)->getColor()->setRGB('FF0000');

设置行高

//设置默认行高
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);

//设置第二行的行高为127.75
$objPHPExcel->getActiveSheet()->getRowDimension(2)->setRowHeight(127.75);

//设置自动换行
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(TRUE);

//设置自动行高(设置第一行的行高为自动行高)
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);

设置单元格列宽

//设置A列的列宽为10
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);

设置单元格对齐方式

//设置A列水平居左
$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

//设置A1单元格水平居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//设置A1单元格垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

//水平居右
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle( 'D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);    //水平方向上对齐
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);    //水平方向上两端对齐
$objPHPExcel->getActiveSheet()->getStyle( 'A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);       //垂直方向上中间居中

设置A1栏

//只设置A1栏位的标题
$objPHPExcel->getActiveSheet()->getStyle( 'A1')->getFont()->setSize(18);
$objPHPExcel->getActiveSheet()->getStyle( 'A1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(50);

自动换行

//自动换行,输出的内容中包含\n即可换行
$objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(true);

设置单元格边框

//设置单元格边框
$styleArray = array(
    'borders' => array(
    'allborders' => array(
        //'style' => PHPExcel_Style_Border::BORDER_THICK,//边框是粗的
        'style' => \PHPExcel_Style_Border::BORDER_THIN,//细边框
        //'color' => array('rgb' => 'EFF3F6'),
    ),
    ),
);
$objPHPExcel->getActiveSheet()->getStyle('A2:B2')->applyFromArray($styleArray);

设置某一列为文本格式

//设置E列为文本格式
$objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

获取单元格背景颜色

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->getRGB();

设置单元格部分文字加粗

使用富文本格式将单元格中的部分文本加粗

$objRichText = new \PHPExcel_RichText();
$objBold = $objRichText->createTextRun("这部分文字加粗\n");
$objBold->getFont()->setName('仿宋_GB2312')->setBold(true)->setSize(14);
$objNormal = $objRichText->createTextRun("这部分文字没有加粗");
$objNormal->getFont()->setName('仿宋_GB2312')->setSize(14);
$objPHPExcel->getActiveSheet()->getCell('A1')->setValue($objRichText);

设置密码保护

只能读,不能写,只对xlsx格式有效:

$objActSheet = $objPHPExcel->getActiveSheet();
$objActSheet->getProtection()->setSheet(true);
$objActSheet->getProtection()->setSort(true);
$objActSheet->getProtection()->setInsertRows(true);
$objActSheet->getProtection()->setFormatCells(true);
$objActSheet->getProtection()->setPassword('123456');

读取Excel文件出现内存不足

// 如果是因为特殊字符引起的,可以在load方法之前加上setReadDataOnly(意思是忽略任何格式的信息)方法,就可以避免
$objReader->setReadDataOnly(true);//只需要添加这个方法
$objPHPExcel = $objReader->load($uploadFilePath);

setReadDataOnly()方法,配置阅读器不关注表格数据的数据类型,都以string格式返回

发表评论

邮箱地址不会被公开。 必填项已用*标注