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 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')
コード例 #5
0
    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
コード例 #6
0
    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