def add_new_range(self, dv_key, range): dv_copy = self.dv_copy_map.get(dv_key) if not dv_copy: dv_copy = copy(self.dv_map[dv_key]) dv_copy.ranges = MultiCellRange() self.dv_copy_map[dv_key] = dv_copy dv_copy.ranges.add(range)
def add_cell_range(self, rdcoords2d, crange): rlo, rhi, clo, chi = crange cr = CellRange(min_row=rlo, max_row=rhi, min_col=clo, max_col=chi) dv = self.dv_copies.get(rdcoords2d) if not dv: dv = copy(self._orig_map.get(rdcoords2d)) dv.ranges = MultiCellRange() self.dv_copies[rdcoords2d] = dv dv.ranges.add(cr)
def bind_merged_cells(self): from openpyxl.worksheet.cell_range import MultiCellRange from openpyxl.worksheet.merge import MergedCellRange if not self.parser.merged_cells: return ranges = [] for cr in self.parser.merged_cells.mergeCell: mcr = MergedCellRange(self.ws, cr.ref) self.ws._clean_merge_range(mcr) ranges.append(mcr) self.ws.merged_cells = MultiCellRange(ranges)
def get_cf_rule(index, sheet, fail): for conditional_formatting in sheet.conditional_formatting: if MultiCellRange(index) == conditional_formatting.sqref: return conditional_formatting.cfRule[0] fail()