Обновление определенной ячейки в pygsheet bot telegram - python

Я новичок в Python, но моя работа заставила меня использовать Python. я создал бот-телеграмму, в которой есть функция для хранения ввода пользователя в google sheet (pygsheet) и обновления определенной ячейки в соответствии с вводом пользователя (в моем случае обновление статуса обслуживания). последовательность действий: пользователь вводит номер техобслуживания -> он будет искать в некоторых файлах -> после того, как будет найден нужный файл, он будет искать в ячейке -> отображать номер техобслуживания со старым статусом -> пользователь обновит статус -> новый статус сохраняется в ячейке.

я изо всех сил пытаюсь найти ссылку на код, надеюсь, кто-то может помочь мне поблагодарить вас:") по крайней мере, дайте мне пример кода для обновления значения в ячейке. Кстати, я использую pygsheet и pandas.

Вот мой код для хранения пользовательского ввода в листе Google (номер обслуживания - это nomor tiket):

# 1. Input Gamas
# user input in bot telegram
def inputgamas(bot,update): 

    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO :' ,reply_markup=markup )
    return NOMOR_TIKET


def induk_Gamas(bot, update, user_data):
    user_data['Nama STO'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :')
    return JUMLAH_IMPACT

def jumlah_Impact(bot, update, user_data):
    user_data['Nomor Tiket Induk'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ')
    return JENIS_PERANGKAT

def jenis_Perangkat(bot, update, user_data):
    user_data['Jumlah Impact'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' )
    return NAMA_PERANGKAT

def nama_Perangkat(bot, update, user_data):
    user_data['Jenis Perangkat'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ')
    return JENIS_GANGGUAN

def jenis_Gangguan (bot, update, user_data):
    user_data['Nama Perangkat'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : ' )
    return SEBAB_GAMAS

def sebab_Gamas (bot, update, user_data):
    user_data['Jenis Gangguan'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : '  + str(user_data['Jenis Gangguan']) +  
                              '\n 7. Sebab Gamas : ' )
    return DESCRIPTION

def description (bot, update, user_data):
    user_data['Sebab Gamas'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : '  + str(user_data['Jenis Gangguan']) +  
                              '\n 7. Sebab Gamas : ' + str(user_data['Sebab Gamas']) + 
                              '\n 8. Description : ')   
    return TANGGAL_OPEN

def tanggal_OpenTicket (bot,update, user_data):
    user_data['Description'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : '  + str(user_data['Jenis Gangguan']) +  
                              '\n 7. Sebab Gamas : ' + str(user_data['Sebab Gamas']) + 
                              '\n 8. Description : ' + str(user_data['Description']) + 
                              '\n 9. Tanggal Open Ticket : ' )  
    return STATUS

def status (bot,update, user_data):
    user_data['Tanggal Open Ticket'] = update.message.text
    print(user_data)
    update.message.reply_text('Silahkan Mengisi : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : '  + str(user_data['Jenis Gangguan']) +  
                              '\n 7. Sebab Gamas : ' + str(user_data['Sebab Gamas']) + 
                              '\n 8. Description : ' + str(user_data['Description']) + 
                              '\n 9. Tanggal Open Ticket : ' + str(user_data['Tanggal Open Ticket']) + 
                              '\n 10.Status : ')    
    return END2




#user input is stored in google sheet according to the STO name

def end2(bot, update, user_data):
    user_data['Status'] = update.message.text
    user_data['Timestamps'] = str(datetime.datetime.now())

    final_data = pd.Series(user_data)
    final_data = pd.DataFrame(final_data).transpose()

    print(final_data)

    gc = pygsheets.authorize(service_file='creds.json')

    date = datetime.datetime.today().strftime('%Y-%m-%d')

    try:
        sheet = gc.open('GAMAS_' + user_data['Nama STO'])
    except:
        gc.create('GAMAS_' + user_data['Nama STO'],folder='1IaX6Q0JGIsdBAwTaAoestL1nXuXx93rP') #bikin beda folder
        sheet = gc.open('GAMAS_' + user_data['Nama STO'])

    worksheet = sheet[0]
    values = worksheet.get_all_records()
    current_data = pd.DataFrame(values)
    frames = [current_data, final_data]
    result = pd.concat(frames)
    result = result[['Timestamps','Nama STO','Nomor Tiket Induk','Jumlah Impact','Jenis Perangkat','Nama Perangkat','Jenis Gangguan','Sebab Gamas','Description','Tanggal Open Ticket', 'Status']]

    worksheet.set_dataframe(result,(1,1))

    update.message.reply_text('Berikut ini yang telah anda isikan : ' +
                              '\n 1. Pilih Nama STO : '  + str(user_data['Nama STO']) +
                              '\n 2. Nomor Tiket Induk :' + str(user_data['Nomor Tiket Induk']) + 
                              '\n 3. Jumlah Impact : ' + str(user_data['Jumlah Impact']) + 
                              '\n 4. Jenis Perangkat : ' + str(user_data['Jenis Perangkat']) +  
                              '\n 5. Nama Perangkat : ' + str(user_data['Nama Perangkat']) +  
                              '\n 6. Jenis Gangguan : '  + str(user_data['Jenis Gangguan']) +  
                              '\n 7. Sebab Gamas : ' + str(user_data['Sebab Gamas']) + 
                              '\n 8. Description : ' + str(user_data['Description']) + 
                              '\n 9. Tanggal Open Ticket : ' + str(user_data['Tanggal Open Ticket']) + 
                              '\n 10.Status : ' + str(user_data['Status']) +
                              '\n \n \n Terimakasih! Pengisian Selesai :) ')    

    update.message.reply_text (
        "\n- /inputgamas untuk melanjutkan memasukkan nomot tiket induk Gamas"
        "\n- /updategamas untuk mengupdate status penanganan Gamas"
        "\n- /cekgamas untuk melihat status penanganan Gamas"
        "\n- /menu untuk kembali ke menu awal" )

    user_data.clear()
    return ConversationHandler.END

некоторые листы на диске Google, где хранить пользовательский вводнекоторые листы на диске Google, где хранить пользовательский ввод

ячейка 'status', которую необходимо обновить с помощью ввода пользователяячейка 'status', которую необходимо обновить с помощью ввода пользователя

0 ответов

Другие вопросы по тегам