Example #1
0
class ConditionalFormattingList(object):
    """Conditional formatting rules."""

    def __init__(self):
        self.cf_rules = OrderedDict()
        self.max_priority = 0

    def add(self, range_string, cfRule):
        """Add a rule such as ColorScaleRule, FormulaRule or CellIsRule

         The priority will be added automatically.
        """
        if not isinstance(cfRule, Rule):
            raise ValueError("Only instances of openpyxl.formatting.rule.Rule may be added")
        rule = cfRule
        self.max_priority += 1
        if not rule.priority:
            rule.priority = self.max_priority

        self.cf_rules.setdefault(range_string, []).append(rule)


    def __bool__(self):
        return bool(self.cf_rules)

    __nonzero = __bool__


    def __iter__(self):
        for cell_range, rules in self.cf_rules.items():
            yield ConditionalFormatting(sqref=cell_range, cfRule=rules)
Example #2
0
class ConditionalFormattingList(object):
    """Conditional formatting rules."""

    def __init__(self):
        self.cf_rules = OrderedDict()
        self.max_priority = 0

    def add(self, range_string, cfRule):
        """Add a rule such as ColorScaleRule, FormulaRule or CellIsRule

         The priority will be added automatically.
        """
        if not isinstance(cfRule, Rule):
            raise ValueError("Only instances of openpyxl.formatting.rule.Rule may be added")
        rule = cfRule
        self.max_priority += 1
        if not rule.priority:
            rule.priority = self.max_priority

        self.cf_rules.setdefault(range_string, []).append(rule)


    def __bool__(self):
        return bool(self.cf_rules)

    __nonzero = __bool__


    def __iter__(self):
        for cell_range, rules in self.cf_rules.items():
            yield ConditionalFormatting(sqref=cell_range, cfRule=rules)
Example #3
0
class ConditionalFormatting(object):
    """Conditional formatting rules."""
    def __init__(self):
        self.cf_rules = OrderedDict()
        self.max_priority = 0

    def add(self, range_string, cfRule):
        """Add a rule such as ColorScaleRule, FormulaRule or CellIsRule

         The priority will be added automatically.
        """
        if not isinstance(cfRule, Rule):
            raise ValueError(
                "Only instances of openpyxl.formatting.rule.Rule may be added")
        rule = cfRule
        self.max_priority += 1
        rule.priority = self.max_priority

        self.cf_rules.setdefault(range_string, []).append(rule)

    def _fix_priorities(self):
        rules = unpack_rules(self.cf_rules)
        rules = sorted(rules, key=lambda x: x[2])
        for idx, (key, rule_no, prio) in enumerate(rules, 1):
            self.cf_rules[key][rule_no].priority = idx
        self.max_priority = len(rules)

    @deprecated("Always use Rule objects")
    def update(self, cfRules):
        pass

    @deprecated("Conditionl Formats are saved automatically")
    def setDxfStyles(self, wb):
        pass
Example #4
0
class ConditionalFormatting(object):
    """Conditional formatting rules."""

    def __init__(self):
        self.cf_rules = OrderedDict()
        self.max_priority = 0

    def add(self, range_string, cfRule):
        """Add a rule such as ColorScaleRule, FormulaRule or CellIsRule

         The priority will be added automatically.
        """
        if not isinstance(cfRule, Rule):
            raise ValueError("Only instances of openpyxl.formatting.rule.Rule may be added")
        rule = cfRule
        self.max_priority += 1
        rule.priority = self.max_priority

        self.cf_rules.setdefault(range_string, []).append(rule)


    def _fix_priorities(self):
        rules = unpack_rules(self.cf_rules)
        rules = sorted(rules, key=lambda x: x[2])
        for idx, (key, rule_no, prio) in enumerate(rules, 1):
            self.cf_rules[key][rule_no].priority = idx
        self.max_priority = len(rules)


    @deprecated("Always use Rule objects")
    def update(self, cfRules):
        pass

    @deprecated("Conditionl Formats are saved automatically")
    def setDxfStyles(self, wb):
        pass