phpexcel 应用, 设置单元格格式, 设置下拉列表,透视表(VLOOKUP), 受保护列

        $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)');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值