def test_source_sheet_cell_ranges_inside_cut_range_are_rewritten(self): worksheet = Worksheet() worksheet.A1.formula = '=B1:B2' worksheet.A2.formula = '=sum(B1:B2)' worksheet.A3.formula = '=B3:B4' worksheet.A4.formula = 'B1:B2' worksheet.A5.formula = '=$B$1:$B$2' rewrite_source_sheet_formulae_for_cut(worksheet, (2, 1, 2, 2), 3, 4) self.assertEquals(worksheet.A1.formula, '=C4:C5') self.assertEquals(worksheet.A2.formula, '=sum(C4:C5)') self.assertEquals(worksheet.A3.formula, '=B3:B4') self.assertEquals(worksheet.A4.formula, 'B1:B2') self.assertEquals(worksheet.A5.formula, '=$C$4:$C$5')
def test_source_sheet_cell_references_to_cut_range_are_rewritten(self): worksheet = Worksheet() worksheet.A1.formula = '=B1' worksheet.A2.formula = '=B2' worksheet.A3.formula = '=B3' worksheet.A4.formula = 'B1' worksheet.A5.formula = '=$B$1' rewrite_source_sheet_formulae_for_cut(worksheet, (2, 1, 2, 2), 3, 4) self.assertEquals(worksheet.A1.formula, '=C4') self.assertEquals(worksheet.A2.formula, '=C5') self.assertEquals(worksheet.A3.formula, '=B3') self.assertEquals(worksheet.A4.formula, 'B1') self.assertEquals(worksheet.A5.formula, '=$C$4')
def paste_to(self, to_sheet, start, end): start_col, start_row = start if end == start: end = start_col + self.width - 1, start_row + self.height - 1 to_worksheet = to_sheet.unjsonify_worksheet() if self.is_cut and to_sheet == self.source_sheet: rewrite_source_sheet_formulae_for_cut(to_worksheet, self.source_range, start_col, start_row) cells = self.to_cells(start, end) for loc, cell in cells: to_worksheet[loc] = cell to_sheet.jsonify_worksheet(to_worksheet) if self.is_cut: self.source_left, self.source_top = start self.source_right, self.source_bottom = end self.is_cut = False self.source_sheet = None
def paste_to(self, to_sheet, start, end): start_col, start_row = start if end == start: end = start_col + self.width - 1, start_row + self.height - 1 to_worksheet = to_sheet.unjsonify_worksheet() if self.is_cut and to_sheet == self.source_sheet: rewrite_source_sheet_formulae_for_cut( to_worksheet, self.source_range, start_col, start_row ) cells = self.to_cells(start, end) for loc, cell in cells: to_worksheet[loc] = cell to_sheet.jsonify_worksheet(to_worksheet) if self.is_cut: self.source_left, self.source_top = start self.source_right, self.source_bottom = end self.is_cut = False self.source_sheet = None