【发布时间】:2021-05-02 19:36:46
【问题描述】:
通过一个迭代, 我需要将位于两行 excel 列('G7'、'G8')中的两个数据导出到两列谷歌表格。我该怎么做?
import gspread
from gspread_dataframe import get_as_dataframe, set_with_dataframe
from oauth2client.service_account import ServiceAccountCredentials
import pyperclip
import pyautogui as p
import rpa as r
import pandas as pd
import tabula
import openpyxl
r.init()
r.url('https://www.meudetran.ms.gov.br/veiculo.php#')
p.sleep(2)
janela = p.getActiveWindow()
janela.maximize()
p.sleep(2)
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
gc = gspread.authorize(credentials)
wks = gc.open_by_key('1AGYhinoPiE9xUABnrNEfVGjLf5s_bAJGjpz9hatfIQU')
worksheet = wks.get_worksheet(0)
dados = get_as_dataframe(worksheet)
df = pd.DataFrame.from_records(dados, columns=["Placa", "Renavam"])
set_with_dataframe(worksheet, df)
df2 = get_as_dataframe(worksheet)
for row in df2.itertuples():
df = tabula.read_pdf(text, pages=1)[1]
df.to_excel('dados.xlsx')
wb = openpyxl.load_workbook('dados.xlsx')
sheet = wb.active
venc = sheet['G8'].value
valor = sheet['G7'].value
worksheet.update(row[3], venc)
最后一行不会更新谷歌表格的第 3 列
【问题讨论】:
-
脚本中的
df = tabula.read_pdf(text, pages=1)[1]是什么? -
我正在将 web pdf 转换为 xlsx 中的表格。要获取数据并将其提供给 googlesheet,在活动元组中
-
感谢您的回复。您想要从 PDF 数据转换的 XLSX 数据中的第一个选项卡中的单元格“G7”和“G8”中检索值。我的理解正确吗?如果我的理解是正确的,你想把检索到的“G7”和“G8”的值放到谷歌电子表格的哪里?似乎在您的脚本中,仅使用了“G8”的值。所以我无法理解你目标的细节。对此我深表歉意。
-
就是这样。我需要将“G8”中的这些数据导入谷歌表格的“C2”单元格。但是,我需要根据元组中读取的行自动完成此操作。在这种情况下,我可以使用 worksheet.update ('C2', venc),但在所有元组中,我会更新谷歌表格中的同一个单元格。在下一个元组中,需要输入 Google 'C3' 单元格,然后是 'C4' ....
-
感谢您的回复。我不得不为我糟糕的英语水平道歉。不幸的是,从您的回复中,我仍然无法理解您的目标。例如,您想在每次运行脚本时将值附加到电子表格中的“C”列?例如,在第一次运行时,您希望将检索到的“G7”和“G8”值放入电子表格的单元格“C2”和“C3”中。并且,在第二次运行时,您希望将检索到的“G7”和“G8”值放入电子表格的单元格“C4”和“C5”中。你想做这个循环。我的理解正确吗?
标签: python google-sheets google-sheets-api gspread