$objPHPExcel = new PHPExcel();
$objActSheet = $objPHPExcel->getActiveSheet();
// 设置样式格式
$objActSheet->getStyle('I2:N12')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); // 数据格式为文本格式
$objActSheet->getStyle('A1:M11')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 对齐方式 居中
$objActSheet->getDefaultColumnDimension()->setWidth(20); // 默认宽度
$objActSheet->getStyle('A1:M1')->getFont()->setName('Candara'); // 字体
$objActSheet->getStyle('A1:M1')->getFont()->setBold(true); // 加粗
$objActSheet->getStyle('A1:M1')->getFont()->setSize(20); // 大小
$objActSheet->getStyle('A1:M1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); // 颜色
$objActSheet->getStyle('A1:M1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); // 下划线
$objActSheet->getProtection()->setPassword('your password')->setSheet(true); // 设置保护
$objActSheet->getStyle('A2:B11')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); // 可编辑的单元格
// 设置下拉列表,
// 可循环设置多列不同下拉 (将列名['A','B'], 设置的下拉内容['"列表1的选项1","列表1的选项2"', '"列表2的选项容1","列表2的选项2"']对应循环即可)
$objValidation = $objActSheet->getDataValidation("A1"); // 修改可处理不同列 (循环时的变量)
$objValidation->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST); // 类型
$objValidation->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_STOP); // 错误时处理方式
$objValidation->setAllowBlank(false); // 是否允许输入别的
$objValidation->setShowDropDown(true);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setErrorTitle("输入的值有误");
$objValidation->setError("您输入的值不在下拉框列表内");
// $objValidation->setPromptTitle('名称');
$objValidation->setFormula1('"列表1的选项1","列表1的选项2","列表1的选项3"'); // (循环时的变量)
$objActSheet->setDataValidation('$A:$A', $objValidation); // 循环引用 (循环时的变量)
// $style = [
// 'font' => ['bold' => true],
// 'alignment' => ['horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER],
// ];
// $objActSheet->getStyle('A1:K1')->applyFromArray($style);
$sheet2 = $objPHPExcel->createSheet(); // 新建sheet 作为透视表的数据源
$objPHPExcel->getSheet(1)->setTitle('Worksheet1'); // 改名 与VLOOKUP公式中名称一样
// 需要设置Worksheet1中A,B列值 略
// sheet(0)透视Sheet(1)表, sheet(0)多列对应, sheet(0)根据A,B列的值匹配Sheet(1)中的A列对应显示B列值
$objActSheet->setCellValue('C2', '=VLOOKUP(A2&B2,IF({1,0},Worksheet1!A1:A9,Worksheet1!B1:B9),2,FALSE)');
phpexcel 应用, 设置单元格格式, 设置下拉列表,透视表(VLOOKUP), 受保护列
于 2022-11-08 17:17:51 首次发布