我是 python 的新手,但我的工作迫使我使用 python。我创建了具有将用户输入存储在谷歌表(pygsheet)中并根据用户输入更新某个单元格的功能的机器人电报(在我的情况下更新维护状态)。流程是:用户输入维修号->在一些文件中搜索->找到正确的文件后,在单元格中搜索->显示维修号及其旧状态->用户更新状态->新状态存储在单元格中。
我正在努力寻找代码参考,希望有人可以帮助我,谢谢:") 至少给我示例代码来更新单元格中的值。顺便说一句,我正在使用pygsheet 和 pandas。
这是我在谷歌表中存储用户输入的代码(维护号是 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
谷歌驱动器中的一些工作表文件存储用户输入的位置
需要由用户输入更新的“状态”单元格