Esempio n. 1
0
    def test_grid_range(self):
        self.assertEqual(grid_range('foo'), {
            'sheetId': 'foo',
        })

        self.assertEqual(grid_range('foo', 'A'), {
            'sheetId': 'foo',
            'startColumnIndex': 0,
            'endColumnIndex': 1,
        })

        self.assertEqual(grid_range('foo', '1'), {
            'sheetId': 'foo',
            'startRowIndex': 0,
            'endRowIndex': 1,
        })

        self.assertEqual(grid_range('foo', 'B:C'), {
            'sheetId': 'foo',
            'startColumnIndex': 1,
            'endColumnIndex': 3,
        })

        self.assertEqual(
            grid_range('foo', 'A5:B'), {
                'sheetId': 'foo',
                'startColumnIndex': 0,
                'endColumnIndex': 2,
                'startRowIndex': 4,
            })

        self.assertEqual(
            grid_range('foo', 'A5'), {
                'sheetId': 'foo',
                'startColumnIndex': 0,
                'endColumnIndex': 1,
                'startRowIndex': 4,
                'endRowIndex': 5,
            })

        self.assertEqual(
            grid_range('foo', 'A1:A1'), {
                'sheetId': 'foo',
                'startColumnIndex': 0,
                'endColumnIndex': 1,
                'startRowIndex': 0,
                'endRowIndex': 1,
            })

        self.assertEqual(
            grid_range('foo', 'A3:B4'), {
                'sheetId': 'foo',
                'startColumnIndex': 0,
                'endColumnIndex': 2,
                'startRowIndex': 2,
                'endRowIndex': 4,
            })
Esempio n. 2
0
 def protect_range(self, range_name, description):
     self.add_action(
         'addProtectedRange', {
             'protectedRange': {
                 'range': grid_range(self.tab_id, range_name),
                 'description': description,
                 'warningOnly': True,
             }
         })
Esempio n. 3
0
 def border(self, range_name, location, style, width, color):
     self.add_action(
         'updateBorders', {
             'range': grid_range(self.tab_id, range_name),
             location: {
                 'style': style,
                 'width': width,
                 'color': hex_to_rgb_hash(color),
             },
         })
Esempio n. 4
0
 def write_formula(self, range_name, formula):
     self.add_action(
         'repeatCell', {
             'range': grid_range(self.tab_id, range_name),
             'cell': {
                 'userEnteredValue': {
                     'formulaValue': formula,
                 }
             },
             'fields': "userEnteredValue",
         })
Esempio n. 5
0
    def auto_resize(self, column_range):
        raw_range = grid_range(self.tab_id, column_range)

        self.add_action(
            'autoResizeDimensions', {
                "dimensions": {
                    "sheetId":
                    self.tab_id,
                    "dimension":
                    "COLUMNS",
                    "startIndex":
                    raw_range.get('startColumnIndex'),
                    "endIndex":
                    raw_range.get('endColumnIndex',
                                  raw_range.get('startColumnIndex') + 1),
                }
            })
Esempio n. 6
0
    def formatting(self,
                   range_name,
                   align_horiz=None,
                   bg_color=None,
                   fg_color=None,
                   font_size=None,
                   bold=False):
        format_data = {}
        text_format_data = {}

        if align_horiz:
            format_data['horizontalAlignment'] = align_horiz

        if bg_color:
            format_data['backgroundColor'] = hex_to_rgb_hash(bg_color)

        if fg_color:
            text_format_data['foregroundColor'] = hex_to_rgb_hash(fg_color)

        if font_size:
            text_format_data['fontSize'] = font_size

        if bold:
            text_format_data['bold'] = True

        if text_format_data:
            format_data['textFormat'] = text_format_data

        self.add_action(
            'repeatCell', {
                'range': grid_range(self.tab_id, range_name),
                'cell': {
                    'userEnteredFormat': format_data,
                },
                'fields':
                "userEnteredFormat(%s)" % ','.join(format_data.keys()),
            })
Esempio n. 7
0
 def merge(self, range_name):
     self.add_action(
         'mergeCells', {
             'mergeType': 'MERGE_ALL',
             'range': grid_range(self.tab_id, range_name),
         })