За последние 24 часа нас посетил 18571 программист и 1607 роботов. Сейчас ищут 1797 программистов ...

Как добавить правила в PHPEXCEL

Тема в разделе "Прочие вопросы по PHP", создана пользователем armo89, 16 дек 2015.

  1. armo89

    armo89 Новичок

    С нами с:
    31 июл 2015
    Сообщения:
    3
    Симпатии:
    0
    добрый день.

    Подскажите пожалуйста как при мопощи PHPEXCEL вставить правила (RULES)?

    задача такая.

    нужно в конкретной ячейке если нет данных (например А1) чтоб ячейка была крассная, когда данные в ячейку внесут чтоб она была обычная (белая)

    в самом EXCEL-е как это делается знаю. HOME-> Conditional Formatting - > ADD RULES. там выбираю последнее из списка (USE a formula to determine which cells to format)
    и в поле FORMAT VALUE WHERE THIS FORMULA IS TRUE пишу ISBLANK(А1). потом выбираю цвет крассный и все работает)


    а как это сделать при помощи PHPEXCEL ? как добавить для конкретной ячейки правила RULES? чтоб они автоматический создавались в EXCEL файле.


    спасибо заранее
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
  3. armo89

    armo89 Новичок

    С нами с:
    31 июл 2015
    Сообщения:
    3
    Симпатии:
    0

    я эту статью смотрел, там при помощью PHPEXCEL создается цвет ячейки.
    я могу сделать это тоже, когда у меня значение в ячейке пустое то крассным сделает фон.
    но мне нужно чтоб этот крассный фон ушел, когда введутся данные в эту ячейку. т.к. мне нужно именно создать RULES
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Код (PHP):
    1. //4.6.23.    Conditional formatting a cell
    2. //A cell can be formatted conditionally, based on a specific rule. For example, one can set the foreground colour of a //cell to red if its value is below zero, and to green if its value is zero or more.
    3.  
    4. //One can set a conditional style ruleset to a cell using the following code:
    5.  
    6. $objConditional1 = new PHPExcel_Style_Conditional();
    7. $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS);
    8. $objConditional1->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN);
    9. $objConditional1->addCondition('0');
    10. $objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
    11. $objConditional1->getStyle()->getFont()->setBold(true);
    12.  
    13. $objConditional2 = new PHPExcel_Style_Conditional();
    14. $objConditional2->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS);
    15. $objConditional2->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL);
    16. $objConditional2->addCondition('0');
    17. $objConditional2->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN);
    18. $objConditional2->getStyle()->getFont()->setBold(true);
    19.  
    20. $conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles();
    21. array_push($conditionalStyles, $objConditional1);
    22. array_push($conditionalStyles, $objConditional2);
    23. $objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles);
    24.  
    25. //If you want to copy the ruleset to other cells, you can duplicate the style object:
    26. $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('B2'), 'B3:B7' );
    Нашел в документации. Возможно поможет.
     
  5. ЮрьЮрьевич

    ЮрьЮрьевич Новичок

    С нами с:
    10 авг 2016
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    г.Москва
    А если надо не больше-меньше нуля, а например через цикл вставляются когда данные из базы, при условии, если ячейка содержит условно какое-то слово, то залить ее каким то цветом определенным? И так чтобы перебирало и закрашивало?