我正在创建一个存储员工时间的数据库。他们将时间花在Google电子表格上,然后将其下载并放入CSV格式。然后将CSV放入数据库中 问题是:如果他们在Google工作表(特别是最后一个单元格)中将单元格留空,则下载会停止。
我的python脚本:
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?'
'version=v4')
service = discovery.build('sheets', 'v4', http=http,
discoveryServiceUrl=discoveryUrl)
spreadsheetId = '***************************'
rangeName = 'Master Time!A:E'
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values', [])
#set up csv
if not values:
print('No data found.')
else:
with open('MasterTime_notFixed.csv', "w", newline='') as csvfile:
writer=csv.writer(csvfile, delimiter=',')
for row in values:
writer.writerow(row)
print('%s, %s, %s, %s, %s' % (row[0], row[1], row[2], row[3], row[4]))`
有没有办法自动为Google电子表格中的单元格添加值,还是其他选项? 到目前为止,我已经尝试添加另一行并填充数据,然后没有获取数据,但它给了我超过我需要的方式。
最终目标是非常放手。因此,一旦使用它,就不必触及脚本。
编辑:
电子表格:
错误:
Traceback (most recent call last):
Employee, Date, Job Number, Hours, Description
SomeEmpName, 2018-02-26, 80112-17, 8, field ck with john
File "C:/Users/JP2-GIS2/Desktop/GIS/SW/Time/TimeSheet.py", line 102, in
<module>
SomeEmpName, 2018-02-28, 80008-18, 8, stk cg with john
SomeEmpName, 2018-02-27, 40000, 1, dept meeting
main()
File "C:/Users/JP2-GIS2/Desktop/GIS/SW/Time/TimeSheet.py", line 100, in
main
print('%s, %s, %s, %s, %s' % (row[0], row[1], row[2], row[3], row[4]))
IndexError: list index out of range
Process finished with exit code 1
代码在有空格的行停止。