import pandas as pd
import pygsheets
import gspread
from gspread_dataframe import set_with_dataframe
from google.oauth2.service_account import Credentials
def csv_to_sheets():
tokenPath ='path for service account file.json'
scopes = ['https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive']
credentials = Credentials.from_service_account_file(tokenPath, scopes=scopes)
gc = gspread.authorize(credentials)
gs = gc.open('csv_to_gSheet')
workSheet1 = gs.worksheet('sheet1')
my_csv = pd.read_csv("my csv file path")
my_csv_values = my_csv.values.tolist()
gs.values_append('sheet1', {'valueInputOption': 'RAW'}, {'values': my_csv_values}, range='S:AE')`
csv_to_sheets()
运行以下代码后,我得到一个错误说:
TypeError: values_append() got multiple values for argument 'range'
如果我从append方法中删除范围,那么值将从第一列中添加。从"A直到数据结束",但不是在列我想ie。从"S: AE"。此外,如何在指定范围内的第一列和其他数据中附加日期。请帮助。提前谢谢你。
修改点:
- 似乎
values_append
的论点是values_append(range, params, body)
。我想这可能是你的问题的原因。
当这反映在您的脚本中时,如何修改以下内容?
:
gs.values_append('sheet1', {'valueInputOption': 'RAW'}, {'values': my_csv_values}, range='S:AE')
:
gs.values_append("sheet1!S:AE", {"valueInputOption": "RAW"}, {"values": my_csv_values})
在本次修改中,
my_csv_values
的值被附加到列的最后一行"S";AE" .如果您想将值附加到数据范围的最后一行,那么如何进行以下修改?
从gs.values_append('sheet1', {'valueInputOption': 'RAW'}, {'values': my_csv_values}, range='S:AE')
workSheet1.update("S" + str(len(workSheet1.get_all_values()) + 1), my_csv_values, value_input_option="USER_ENTERED")
引用:
- values_append(range, params, body)
- update(range_name, values=None, **kwargs)