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

How to copy a formula from one gsheet to another using python?

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

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

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)

(自 gspread 3.0.0 使用 Sheets API v4 起有效。)

原回答如下:

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

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

# 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)

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