gpt4 book ai didi

python - 如何使用 .find() 来定位一个单元格并在循环中开始更新下面行中的单元格?

转载 作者:行者123 更新时间:2023-12-03 14:52:04 25 4
gpt4 key购买 nike

我正在使用从 CSV 中获取的数据自动填写 Google 表格。对于自动化,我希望能够使用 .find()定位特定的单元格值,该值用作从何处开始更新单元格的引用。为了更好地解释:
enter image description here
我的代码使用 .find('Cafe Crepe')找到属于“Cafe Crepe”餐厅的行和列。在表格中,有多个餐厅的订单、小计等具有相同的格式。

def matchAndWriteFinalCSV(self, sheet, restaurant):
'''
Match orders from Ecwid csv to restaurant in Delivery csv
Write to Final csv
'''
print("WRITE START")
cell = sheet.find(f"{restaurant}")
filtered_list = []
print("WRITE SHEET")
print(f"ROW {cell.row} COL {cell.col} CELL {cell}")
sheet.update('R5', "TEST")
更新
为了说明结果应该是什么:
enter image description here
我决定去创建一个订单字典列表(订单号、小计、tx 等)。使用 for循环,我按餐厅划分编写/更新谷歌表的任务。在此问题的示例中:我的代码获取属于“Cafe Crepe”的所有订单,并开始写入/更新订单编号、小计、税金等字段。
for restaurant_name, restaurant_orders in orders_per_restaurant.items():
new_row = 5
for order in restaurant_orders:
print(order)
restaurant = restaurant_name
cell = sheet.find(f"{restaurant}")
print(f"ROW {cell.row} COL {cell.col} CELL {cell}")
subtotal = cell.col + 1
tax = cell.col + 2
new_cellrow = cell.row + new_row
write_cell_start = f"R{str(new_cellrow)}C{str(cell.col)}"
write_subtotal = f"R{str(new_cellrow)}C{str(subtotal)}"
sheet.update(write_cell_start, order['order'])
sheet.update(write_subtotal, order['sub-total'])
new_row += 1
new_row = 5
time.sleep(100)
这有效,但现在我无法让此代码运行超过某个点而不会获得 "Quota exceeded for quota metric 'Write requests' and limit 'Write requests per minute per user' of service 'sheets.googleapis.com' .我试图了解如何使用 batch_update() 实现同样的目标.我怎样才能解决在我的代码中超过每分钟请求率的问题?

最佳答案

这应该引导你去你想去的地方:

iRow = Sheet.cells.find("searchString").Row
iCol = Sheet.cells.find("searchString").Column

newCell = Sheet.cells(iRow,iCol).offset(iiRow, iiCol)
iiRow 和 iiCol 可以是您在使用 iRow、iCol 作为其基线引用点的新循环中定义的迭代器。

关于python - 如何使用 .find() 来定位一个单元格并在循环中开始更新下面行中的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67066424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com