2017-08-21 16 views
14

Poszukuję sposobu usunięcia tylko formowania w zakresie wyboru zakresu komórek, a nie ich zawartości, za pomocą interfejsu Google API API z pythonem.Usuwanie tylko formowania z zaznaczenia zakresu komórek za pomocą interfejsu API arkusza kalkulacyjnego google

Na razie jedynym rozwiązaniem, które mam, jest zastosowanie tej samej logiki, co normalny format i ustawienie stylu na BRAK. Na przykład, kiedy ustawić format granicznego do specifical zakresie, używam:

request_dict = {'requests': [{ 
        "updateBorders": { 
         "range": { 
         "sheetId": sheetId, 
         "startRowIndex": 1, 
         "endRowIndex": raws, 
         "startColumnIndex": first_col, 
         "endColumnIndex": last_col}, 
         "top": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "bottom": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "left": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "right": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "innerHorizontal": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "innerVertical": { 
         "style": "SOLID_MEDIUM", 
         "width": 1, 
         "color": {"blue": 0}}}}]} 
body = {'requests': request_dict['requests']} 
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, 
            body=body).execute() 

A jeśli chcę, aby go usunąć, wymienić „styl” pole z „brak”, podobnie jak to:

request_dict = {'requests': [{ 
        "updateBorders": { 
         "range": { 
         "sheetId": sheetId, 
         "startRowIndex": 1, 
         "endRowIndex": raws, 
         "startColumnIndex": first_col, 
         "endColumnIndex": last_col}, 
         "top": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "bottom": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "left": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "right": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "innerHorizontal": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}, 
         "innerVertical": { 
         "style": "NONE", 
         "width": 1, 
         "color": {"blue": 0}}}}]} 
body = {'requests': request_dict['requests']} 
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, 
            body=body).execute() 

Ale to znaczy, że muszę zdefiniować funkcję wymazywania formatu dla każdego zdefiniowanego przeze mnie formatu, co nie jest zbyt praktyczne ... Pierwszym krokiem byłoby znalezienie sposobu na wymazanie formatowania na całym arkuszu, i być może po to, aby móc to zrobić dla określonego zakresu w moim arkuszu.

+0

Nie mam pojęcia ... ale może być możliwe skopiowanie formatu ze znanej, niesformatowanej komórki. –

Odpowiedz

0

This documentation Wydaje się stwierdzać, że jeśli ustawisz fields na "userEnteredValue" w żądaniu updateCells, to spowoduje to usunięcie całego formatowania. Nie testowałem jeszcze tego, ale tutaj:

request_dict = { 
    "requests": [{ 
     "updateCells": { 
       "range": { 
        "sheetId": sheetId, 
        "startRowIndex": 1, 
        "endRowIndex": raws, 
        "startColumnIndex": first_col, 
        "endColumnIndex": last_col 
      }, 
      "fields": "userEnteredValue" 
     } 
    }] 
} 
Powiązane problemy