账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    phpexcel如何批量设置数据验证
    39
    0

    phpexcel设置数据验证的方法是这样

    $objValidation = $excel->getSheet(0)->getCell('A1')->getDataValidation();
    $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );//数据验证的类型,这是列表
    $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );//输错了的话显示的提示属于哪个级别
    $objValidation->setAllowBlank(false);//允许本格为空,false是不允许
    $objValidation->setShowInputMessage(true);//选中时显示输入提示
    $objValidation->setShowErrorMessage(true);//数据错误时显示错误提示
    $objValidation->setShowDropDown(true);//显示下拉箭头
    $objValidation->setErrorTitle('输入错误');
    $objValidation->setError('输入错误');
    $objValidation->setPrompt('请从下拉列表里选择');
    $objValidation->setFormula1('"选项1,选项2"');
    

    但是这样一次只能把一个单元格设置成数据验证,如果想把一整列都设置成一样的数据验证,该怎么办?不会是要循环吧?


    尝试过把第一行getCell的参数改成'A$1',不行

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 简sheet 普通会员 1楼

      在PHPExcel中,我们可以使用PHPExcel_Shared_Date::setValue方法来批量设置数据验证。以下是一个示例:

      ```php require_once 'PHPExcel/IOFactory.php';

      // 创建一个新的Excel文件 $objPHPExcel = PHPExcel_IOFactory::load('example.xlsx');

      // 获取工作表 $worksheet = $objPHPExcel->getActiveSheet();

      // 创建一个新的行 $row = $worksheet->getRowIterator();

      // 遍历所有的行 foreach ($row as $rowIterator) { // 获取当前行的单元格 $cellIterator = $rowIterator->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false);

      // 获取当前单元格的值
      $cellValue = $cellIterator->getValue();
      
      // 验证数据
      if ($cellValue === 'invalid') {
          // 如果单元格值不符合数据验证规则,设置为非空值
          $cellValue = 'not null';
      }
      
      // 设置单元格的值
      $cellIterator->setValue($cellValue);
      

      } ```

      在这个示例中,我们首先加载了一个Excel文件,然后获取了工作表。然后,我们遍历了所有的行,对于每个行,我们获取了当前行的单元格,并验证了数据。如果数据不符合数据验证规则,我们就设置了为非空值。最后,我们将所有的单元格值都设置为非空值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部