使用pygsheets读取/写入数据框到谷歌表

时间:2017-06-04 00:48:42

标签: pygsheets

将不同大小的数据框写入同一工作表但确保只显示最近编写的数据值的正确程序流程是什么?

这是我原来的序列:

gc = pygsheets.authorize(outh_file=oauth_file)
sh = gc.open(sheet_name)
wks = sh.worksheet_by_title(wks_name)
wks.set_dataframe(df, (1, 1))

以上序列的问题是,如果第一次写入是3800行x 12列,第二次写入是2400行x 12列,则wks仍将显示先前写入的数据,以用于2400以上的行。

我的第二个解决方案(基本上只是为了让它为我工作):

gc = pygsheets.authorize(outh_file=oauth_file)
sh = gc.open(spreadsheet_name)
wks = sh.worksheet_by_title(sheet_name)
sh.del_worksheet(wks)
sh.add_worksheet(sheet_name, rows=len(df) + 1, cols=len(df.columns))
wks = sh.worksheet_by_title(sheet_name)
wks.set_dataframe(df, (1, 1))

上面的顺序基本上做了我想要的但我不喜欢删除wks(我丢失了所有的手动格式)。我知道必须有一个正确的方法来完成,但我不太了解pygsheets API。

请问更高级的pygsheet用户请告知正确的程序流程和方法?

TIA, --Rj

1 个答案:

答案 0 :(得分:0)

fit=True基本上会调整工作表的大小以适合您的数据框。因此,如果您希望将纸张保持在相同的尺寸,则可以在下次写入之前清除纸张。它比你的第二个解决方案更容易。此外,如果您只想清除之前编写的范围,可以通过范围来清除功能。

wks.set_dataframe(df, (1, 1))
wks.clear()
wks.set_dataframe(df, (1, 1))