@mrk_sn

Как мне заменить цвет текста на белый только у повторяющихся значений?

У меня есть двумерный текстовый массив и мне нужно чтобы получившаяся таблица имела только первые элементы из тех что повторяются. Но так же нужно чтоб работал фильтр по столбцу. Я придумал идею красить их в белый чтобы их небыло видно, но фильтр работал( странное решение, но рабочее). Как я могу это реализовать если не могу знать конечных номеров ячеек этих элементов?

import httplib2
import apiclient
from oauth2client.service_account import ServiceAccountCredentials

def tableCreate(used, noUsed, maximum):
    resUsed = []
    for line in used:
        for i in range(len(line)):
            if line[i] != line[-1]:
                if line[i] not in resUsed:
                    resUsed.append(line[i])
                    print(line[i])
                else:
                    if line[i] in resUsed:
                        line[i] = "white" #эти элементы должны быть белыми
                        print(line[i])
        while len(line) < maximum:
            line.insert(-1, "")
                

    
    
    CREDENTIALS_FILE = 'used-ui-interface-12832559428d.json'  

    credentials = ServiceAccountCredentials.from_json_keyfile_name(CREDENTIALS_FILE, ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive'])

    httpAuth = credentials.authorize(httplib2.Http()) # Авторизуемся в системе
    service = apiclient.discovery.build('sheets', 'v4', http = httpAuth) 

    spreadsheet = service.spreadsheets().create(body = {
        'properties': {'title': 'Выгрузка', 'locale': 'ru_RU'},
        'sheets': [{'properties': {'sheetType': 'GRID',
                                   'sheetId': 0,
                                   'title': 'Используемые',
                                   'gridProperties': {'rowCount': len(used), "columnCount": maximum}}}]
    }).execute()
    spreadsheetId = spreadsheet['spreadsheetId'] 
    print('https://docs.google.com/spreadsheets/d/' + spreadsheetId)

    driveService = apiclient.discovery.build('drive', 'v3', http = httpAuth) 
    access = driveService.permissions().create(
        fileId = spreadsheetId,
        body = {'type': 'user', 'role': 'writer', 'emailAddress': 'm.snegirev@game-insight.com'}, 
        fields = 'id'
    ).execute()


    results = service.spreadsheets().values().batchUpdate(spreadsheetId = spreadsheetId, body = {
        "valueInputOption": "USER_ENTERED", 
        "data": [
            {"range": "Используемые!A1",
             "majorDimension": "ROWS",    
             "values": used}
        ]
    }).execute()

    results = service.spreadsheets().batchUpdate(
        spreadsheetId=spreadsheetId,
        body=
        {
            "requests": [
                {
                    "addSheet": {
                        "properties": {
                            "title": "Не используемые",
                            "gridProperties": {
                                "rowCount": len(noUsed),
                                "columnCount": 1
                            }
                        }
                    }
                }
            ]
        }).execute()

    results = service.spreadsheets().values().batchUpdate(spreadsheetId=spreadsheetId, body={
        "valueInputOption": "USER_ENTERED",
        "data": [
            {"range": "Не используемые!A1",
             "majorDimension": "COLUMNS",  
             "values": noUsed}
        ]
    }).execute()
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Teleform Санкт-Петербург
от 120 000 до 250 000 ₽
GigAnt Санкт-Петербург
от 180 000 ₽
31 июл. 2021, в 12:18
5000 руб./за проект
31 июл. 2021, в 12:17
200000 руб./за проект
31 июл. 2021, в 12:13
1000 руб./в час