Привет!
Такая проблема: есть онлайн гугл док с расписанием отдела, где сверху указаны дни месяца, слева имена агентов, а на перекрестии их часы работы (значение, например 10-22) и их обязанность на сегодня (желтый, красный и т.п., каждый цвет определяет род занятий на день).
Я через бота в телеграмме (на aiogram) сделал команду, который парсит дату системы, сверяет её с гугл доком и далее выводит в формате 'name' + 'hours'.
Остался последний штрих: чтобы код при условии, что ячейка цветная (определенного цвета), то он добавлял надпись 'role' (которая будет уже в себе нести строку с опозданием роли в зависимости от цвета). Сразу оговорка - цвет есть не у всех ячеек, потому что есть люди без ролей.
Как реализовать это в рамках кода?
Сейчас код выглядит вот так:
	
	
	
		
			
			Такая проблема: есть онлайн гугл док с расписанием отдела, где сверху указаны дни месяца, слева имена агентов, а на перекрестии их часы работы (значение, например 10-22) и их обязанность на сегодня (желтый, красный и т.п., каждый цвет определяет род занятий на день).
Я через бота в телеграмме (на aiogram) сделал команду, который парсит дату системы, сверяет её с гугл доком и далее выводит в формате 'name' + 'hours'.
Остался последний штрих: чтобы код при условии, что ячейка цветная (определенного цвета), то он добавлял надпись 'role' (которая будет уже в себе нести строку с опозданием роли в зависимости от цвета). Сразу оговорка - цвет есть не у всех ячеек, потому что есть люди без ролей.
Как реализовать это в рамках кода?
Сейчас код выглядит вот так:
		Python:
	
	def getDataFromExcelTable():
    creds = None
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        with open('token.json', 'w') as token:
            token.write(creds.to_json())
    service = build('sheets', 'v4', credentials=creds)
    sheet = service.spreadsheets()
    result_month = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID,
                                range=SAMPLE_RANGE_NAME_MONTH).execute()
    values = result_month.get('values', [])
    df = pd.DataFrame(values)
    df_replace = df.replace([''], [None])
    processed_dataset = df_replace.values.tolist()
    result_month = {}
    dateColumn = -1
    date_now = datetime.datetime.now().strftime("%d.%m")
    if values:
        for _, row in enumerate(processed_dataset):
            for index, column in enumerate(row):
                if str(column) == date_now:
                    dateColumn = index
                    break
        if dateColumn < 0:
            return result_month
        for rowIndex, row in enumerate(processed_dataset):
            if rowIndex > 0 and row[0] is not None and row[dateColumn] is not None:
                result_month[row[0]] = row[dateColumn]
    return result_month
month = 'A22:AH35'
@dp.message_handler(commands="schedule")
@dp.message_handler(Text(equals="Расписание мониторинга"))
async def schedule(message: types.Message):
    user = BotUsers.get(message.chat.id)
    reply = "Расписание работы отдела мониторинга:\n"
    data = google.getDataFromExcelTable()
    for name in data:
        reply = reply + name + " " + data[name] + "\n"
    if user.is_admin():
        await message.reply(reply, reply_markup=keyboard.info_panel, parse_mode='Markdown')
    if not user.is_admin():
        await message.reply(reply, reply_markup=keyboard.info_panel, parse_mode='Markdown')
			
				Последнее редактирование: 
				
		
	
										
										
											
	
										
									
								