$objPHPExcel->getDefaultStyle()->getFont()->setName('微软雅黑'); // 设置字体
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11); // 设置字号
$monthDate = $sheet->setCellValueExplicitByColumnAndRow($colIndex,2, ''); // 填充内容
$monthDate->getStyleByColumnAndRow($colIndex, $rowIndex)->getAlignment()->setWrapText(true)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER)->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
$monthDate->getColumnDimensionByColumn($col)->setWidth(5);
setWrapText(true): 单元格内换行
setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER): 设置水平对齐
setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER): 设置垂直对齐
设置单元格的背景颜色:
$sheet->getStyleByColumnAndRow($colIndex,2, $colIndex,2)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyleByColumnAndRow($colIndex,2, $colIndex,2)->getFill()->getStartColor()->setRGB('BEBEBE');
// setARGB 只有 RED、GREEN两种常见的颜色...
使用数组方式设置样式:
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => \PHPExcel_Style_Border::BORDER_THIN
)
)
);
$sheet->getStyleByColumnAndRow(0, 1, $colIndex, $rowIndex-1)->applyFromArray($styleArray);
合并单元格并填充内容:
$sheet->mergeCellsByColumnAndRow(0,$rowIndex+1,$colIndex,$rowIndex+1)->setCellValueByColumnAndRow(0, $rowIndex+1, 'content');
给所有的单元格设置边框:
$objPHPExcel->getActiveSheet()->getStyle('A1:' .
$objPHPExcel->getActiveSheet()->getHighestColumn() .
($objPHPExcel->getActiveSheet()->getHighestRow()-1))->applyFromArray($styleArray);
给字体设置下划线,超链接形式,加上蓝色即可:
$sheet->getStyleByColumnAndRow(3, $rowIndex)->getFont()->setUnderline()->setUnderline(true);
或:
$styleArray = array(
'font' => array(
'underline' => PHPExcel_Style_Font::UNDERLINE_SINGLE
)
);
$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray);
给所有单元格设置自适应高度:
foreach($objPHPExcel->getActiveSheet()->getRowDimensions() as $rd) {
$rd->setRowHeight(-1); // 给所有单元格设置自适应高度, 高度随着内容变化
}
https://cloud.tencent.com/developer/article/1398704?from=15425
//设置字体
$objPHPExcel->getDefaultStyle()->getFont()->setName('宋体');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11); // 设置字号
//设置行高
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);
/*单元格宽度*/
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
/*设置表格对其方式,setVertical-垂直*/
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//左右居中 $objActSheet = $objPHPExcel->setActiveSheetIndex(0);
$objActSheet->getStyle('A2')->getAlignment()->setHorizontal('center');
//居中和字体样式,默认和单个
$format = array(
'font' => array('size'=>13,'bold' => true),
'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
);
$objPHPExcel->getDefaultStyle()->applyFromArray($format);
$objPHPExcel->getActiveSheet(0)->getStyle("C".$i)->applyFromArray($format);
//单个对齐
$objPHPExcel->getActiveSheet()->getStyle('C3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
//是否加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
//设置单元格格式,要‘C2’单元格为设置才行,否则失败
$objPHPExcel->getActiveSheet()->getCell('C2')->setValueExplicit('1234567890123456123', PHPExcel_Cell_DataType::TYPE_NUMERIC);
//单元格换行
$title_order = "TM
请发电子\r\n到**报名";
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$start_row, $title_order);
$objPHPExcel->getActiveSheet()->mergeCells('A'.$start_row.':G'.$start_row);
/*满一行后自动换行,如需要手动,则家\r\n,或者直接回城代替。*/
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
$objDrawing = new PHPExcel_Worksheet_Drawing();
/*名字和描述*/
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
/*图片地址,必须是本地*/
$objDrawing->setPath("./template/images/logo.png");
/*图片高度,宽度自动改变*/
$objDrawing->setHeight(50);
$objDrawing->setCoordinates("A1");
/*离左上角的宽度和旋转的角度*/
$objDrawing->setOffsetX(0);
$objDrawing->setRotation(0);
/*是否显示明显,false看起来像背景,true看起来想图片*/
$objDrawing->getShadow()->setVisible(false);
/**/
$objDrawing->getShadow()->setDirection(0);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet(0));
//合并单元格和分离单元格
$objPHPExcel->getActiveSheet()->mergeCells('A1:E2');
$objPHPExcel->getActiveSheet()->unmergeCells('A1:E2');
//插入数据,多条插入时,建议用for语句插入
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$start_row, "姓名")
foreach($data as $key=>$d){
//项目基本信息
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('G'.$start_row, "房型");
//项目申报情况
$start_row++;
}
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length:".$file_size);
// header("Content-Disposition: attachment; filename=".$file_name);
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=订单详情表.xls" );
//设置sheet的值
$objPHPExcel->getActiveSheet()->setTitle('phpexcel demo');
//隐藏F列
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setVisible(false);
//固定第一行,A3代表固定第二行
$objPHPExcel->getActiveSheet()->freezePane('A2');
//设置指定范围单元格表框
$objPHPExcel->getActiveSheet()->getStyle('A1:G20')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//单元格样式和颜色填充
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');
//添加链接
$objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.baidu.com');
$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
$objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
//日期,测试可行,但是好像不设置也正常(时间戳返回格式化失败返回###)
$objPHPExcel->getActiveSheet()->setCellValue('K2', '2008-12-31');
$objPHPExcel->getActiveSheet()->getStyle('K2')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);