如何使用python将公式从一个gsheet复制到另一个gsheet?

jas*_*son 1 python google-sheets gspread

我不确定这是否可能。我有大量的电子表格,公式需要更新。如何将公式从一个单元格或一组单元格复制到另一个单元格?我用过gspread,它似乎只能做值。我需要 python 为我在数百张纸上粘贴公式,而无需我单独打开每个并复制和粘贴公式。

有人有复制和粘贴公式的通用解决方案吗?这很重要,你会认为有人可以做到。

Bur*_*ash 6

2018 年 7 月 19 日更新:

这是你如何做到的:

# Get the formula value from the souce cell:
formula = wks.acell('A2', value_render_option='FORMULA').value

# Update the target cell with formula:
wks.update_acell('B3', formula)
Run Code Online (Sandbox Code Playgroud)

(这从使用 Sheets API v4 的 gspread 3.0.0 开始工作。)

原答案如下:

要访问公式值,您需要使用input_value单元格对象的属性。

这是一个例子。(我跳过了初始化步骤。假设您已经打开了一个电子表格并且wks指的是您的工作表对象。)

# To copy a formula from a single cell (say, A2) to another cell (B3)
# use the input_value property
formula = wks.acell('A2').input_value

# then paste the value to a new cell
wks.update_acell('B3', formula)
Run Code Online (Sandbox Code Playgroud)

对于一组单元格,您需要使用一种wks.range()方法来获取单元格对象。然后您可以通过input_value上面的代码获取公式值。请参阅GitHub 上的示例