亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
目錄
設(shè)置您的Google Cloud項(xiàng)目
創(chuàng)建和配置Google雲(yún)項(xiàng)目
生成和確保API證書
授予訪問Google表格
了解gspread
關(guān)於單元引用的快速註釋
建立連接和開頭電子表格
創(chuàng)建和管理Google表格
管理工作表
工作表選擇
創(chuàng)建新的工作表
重命名工作表
刪除工作表
細(xì)胞性質(zhì)
添加新的行和列
插入特定位置
表範(fàn)圍後插入
獲取單元格和範(fàn)圍值
獲取單個(gè)單元格
獲取工作表或範(fàn)圍的所有單元格
獲取細(xì)胞範(fàn)圍的值
從行或列獲取所有值
獲取整個(gè)工作表值
更新單元格
更新單個(gè)單元格
更新一系列單元格
更新多個(gè)單元格
刪除行和列
搜索單元格
格式化細(xì)胞
清晰的單元格和工作表
Google API的局限性
結(jié)論
關(guān)鍵要點(diǎn)
常見問題
首頁 科技週邊 人工智慧 使用Python的Google表自動化|分析Vidhya

使用Python的Google表自動化|分析Vidhya

Apr 13, 2025 am 10:01 AM

Google表是Excel的最受歡迎和廣泛使用的替代方案之一,它提供了一個(gè)協(xié)作環(huán)境,具有實(shí)時(shí)編輯,版本控制和與Google Suite無縫集成等功能,使用戶可以在Google文檔中致電Google Sheept,並利用Google Workspace的最佳功能。雖然您可以使用pandas輕鬆地加載和使用Excel文件,但可以通過pandas進(jìn)行編程,但可以用Google表複製類似的設(shè)置。作為SaaS產(chǎn)品,訪問Google表數(shù)據(jù)需要使用其API,該數(shù)據(jù)支持各種編程語言,包括Java,JavaScript,Node.js,PHP,Ruby,Python, Python和Google自己的AppScript。本文著重於使用Python有效地將Google Sheape數(shù)據(jù)加載到PANDAS數(shù)據(jù)框架中,從而可以快速數(shù)據(jù)轉(zhuǎn)換和分析。更改完成後,GSPREAD PYTHON庫可用於將更新的數(shù)據(jù)推回Google表格,從而提供了一個(gè)方便的界面,以與Google Shealess API進(jìn)行交互。

本文作為數(shù)據(jù)科學(xué)博客馬拉鬆的一部分發(fā)表

目錄

  • 設(shè)置您的Google Cloud項(xiàng)目
  • 了解gspread
  • 建立連接和開頭電子表格
  • 創(chuàng)建和管理Google表格
  • 管理工作表
  • 細(xì)胞性質(zhì)
  • 添加新的行和列
  • 獲取單元格和範(fàn)圍值
  • 更新單元格
  • 刪除行和列
  • 搜索單元格
  • 格式化細(xì)胞
  • 清晰的單元格和工作表
  • Google API的局限性
  • 常見問題

設(shè)置您的Google Cloud項(xiàng)目

如前所述,Google表是SaaS的產(chǎn)品,因此您需要準(zhǔn)備自動化的額外步驟。流行的雲(yún)計(jì)算平臺Google Cloud Platform(GCP)提供了各種服務(wù),可幫助與Google產(chǎn)品互動以及您的自定義項(xiàng)目的部署。

從廣義上講,我們需要遵循這三個(gè)步驟,以開始使用Google Sheales Automation。

創(chuàng)建和配置Google雲(yún)項(xiàng)目

前往https://console.cloud.google.com/並註冊免費(fèi)帳戶。下一個(gè)從左上方,單擊項(xiàng)目選擇菜單,然後選擇新項(xiàng)目。提供一個(gè)項(xiàng)目名稱,將組織作為“無組織”,HIT CREATE,您的GCP項(xiàng)目現(xiàn)在設(shè)置為“無組織”。

使用Python的Google表自動化|分析Vidhya

生成和確保API證書

我們需要啟用Google表和Google Drive API並創(chuàng)建一個(gè)服務(wù)帳戶。這種特殊類型的帳戶使我們能夠訪問和管理Google Cloud資源,而無需人工互動。要啟用Google表API,請?jiān)陧敳克阉鳈谥兴阉鞔矄?,然後選擇“ Google Sheats API”。單擊“允許”,它將將我們重定向到API詳細(xì)信息頁面。此處單擊“創(chuàng)建憑據(jù)”,它將打開憑據(jù)創(chuàng)建表格。

使用Python的Google表自動化|分析Vidhya

從“選擇”框中選擇“應(yīng)用數(shù)據(jù)”,然後單擊下一步。在下一個(gè)屏幕上,為服務(wù)帳戶提供有意義的名稱,因?yàn)槟鷮⒃谝葬岬牟襟E中使用它。然後,選擇“編輯器”角色。最後,在底部單擊完成。

使用Python的Google表自動化|分析Vidhya

同樣,可以啟用Google Drive API。請注意,我們不需要為此API創(chuàng)建另一個(gè)服務(wù)帳戶?,F(xiàn)有的服務(wù)帳戶將能夠訪問兩個(gè)API?,F(xiàn)在,我們需要下載憑據(jù)JSON,我們的Python腳本將消耗conference訪問Google表格。單擊新生成的服務(wù)帳戶電子郵件,切換到“鑰匙”選項(xiàng)卡,單擊“添加鍵”按鈕以選擇“創(chuàng)建新密鑰”選項(xiàng),選擇JSON,然後創(chuàng)建。

使用Python的Google表自動化|分析Vidhya

授予訪問Google表格

我們的Python腳本將使用生成的憑據(jù)訪問Google表。但是,我們需要手動授予對腳本將使用的文件的訪問。為此,請複制為服務(wù)帳戶生成的電子郵件(在服務(wù)帳戶的詳細(xì)信息選項(xiàng)卡中找到),然後將其作為所需文件的編輯器添加。

了解gspread

Gspread是Google表的Python API包裝紙。它封裝了Google Sheetsapi在單獨(dú)的類和訪問方法下提供的許多功能。它使其與Sheetsapi的互動易於瀏覽,並且可以迅速將其撿起。

要在本地環(huán)境中設(shè)置庫,可以使用簡單的PIP命令,例如任何其他Python軟件包。將庫在單獨(dú)的環(huán)境中安裝,以避免任何依賴性衝突。

 PIP安裝Gspread

關(guān)於單元引用的快速註釋

可以使用兩個(gè)流行的符號來引用Google表中的單元格地址:

  • A1符號:此單元格參考由表格名稱,行號和列字母組成。此參考文獻(xiàn)無需提及表格名稱,並允許您引用單個(gè)單元格,一系列單元格或整列。
  • 命名範(fàn)圍:這是具有自定義名稱的定義範(fàn)圍,可輕鬆身份識別和簡化的Google表格。

建立連接和開頭電子表格

現(xiàn)在,我們已經(jīng)設(shè)置了必要的訪問和庫,讓我們測試我們的代碼。在包含服務(wù)帳戶電子郵件的電子表格中,在第一個(gè)單元格中輸入一些隨機(jī)文本。我們將嘗試使用Python腳本來檢索此值。

使用Python的Google表自動化|分析Vidhya

我們將使用JSON模塊加載我們的憑據(jù)並將其傳遞到GSPREAD的“ Service_account_from_dict()”功能。這將返回Google表客戶端對象,並且可以使用此對象使用“ Open()”函數(shù)打開任何Google表。請參閱下面的代碼。

導(dǎo)入gspread
進(jìn)口JSON

以f的開放('Creds.json')為f:
    憑據(jù)= JSON.LOAD(F)

gc = gspread.service_account_from_dict(憑據(jù))

sh = gc.open(“ arcicleDemo”)

有兩種替代方法可以打開Goog??le表而不是標(biāo)題名稱。這些替代方法消除了標(biāo)題名稱依賴關(guān)係,就像在Google工作區(qū)中一樣,多個(gè)文件可以具有相同的標(biāo)題。對於電子表格,如果有兩個(gè)具有相同標(biāo)題的文件,則最新文件將由API訪問。我們可以使用文件URL或電子表格的唯一ID訪問電子表格,該ID執(zhí)行以下鏈接:“ https://docs.google.com/spreadsheets/d/preadsheets/d/dunique_id>/edit”。以下是通過URL或唯一ID訪問電子表格的代碼。

 ##通過唯一ID訪問
sh = gc.open_by_key(“ 1R97TWCM0FFFNSSSRH_0FJDDG-HCQF5PLHBHRXU9PTV_Q”)


##通過URL訪問
sh = gc.open_by_url(“ https://docs.google.com/spreadsheets/d/1r97twcm0fffnssrh_0fjddg-hcqf5plhbhrxu9pplhrxu9ptv_q/edit?

以下代碼將讀取表格前面輸入的值。該代碼的工作將在本文的後面部分中進(jìn)行解釋。

打?。╯h.sheet1.acell('a1')。值)

這將返回表格中A1單元格中存在的值,在我們的情況下,這是“ Gsheet:這是第一個(gè)單元格”。現(xiàn)在,我們都將深入研究GSPREAD庫,並探索所有可用的選項(xiàng)。

注意: shvaria可以容納電子表格對象,並將在整個(gè)指南中提及

創(chuàng)建和管理Google表格

可能有很多用例以編程方式創(chuàng)建電子表格。一個(gè)人可能是為其用戶發(fā)布數(shù)據(jù)和見解的解決方案。隨之而來的是,他們可能想直接與用戶共享此工作表。

  • 要創(chuàng)建新的電子表格,請使用GSPREAD客戶端的create()函數(shù)。將新電子表格的標(biāo)題作為參數(shù)傳遞,如果要指定位置,請使用folder_id參數(shù)。
  • 僅由服務(wù)帳戶用戶訪問創(chuàng)建的新電子表格。這意味著即使對於創(chuàng)建服務(wù)帳戶的用戶,電子表格也不可見。為此,我們可以使用電子表格對象的“共享()”函數(shù)。此功能需要3個(gè)強(qiáng)制性參數(shù):“ email_address”(電子郵件地址),“ perm_type”(許可類型)和“角色”。權(quán)限類型可以採用以下值:用戶,組,域或任何人。對於大多數(shù)用例,用戶值將起作用。 PERM_TYPE還具有固定數(shù)量的可接受值:“讀者”,“評論者”,“ Writer”,“ Fileorganizer”,“組織者”和“所有者”。還有一些其他可選參數(shù),提供顆粒狀的信息。
    • “通知”:以控制用戶是否應(yīng)收到共享文件的通知的布爾值。
    • “ email_message”:將發(fā)送的郵件和通知電子郵件發(fā)送的字符串值。
 sh = gc.create('arcitledemotest')##創(chuàng)建一個(gè)新的電子表格
sh.share(email_address ='[Email Protected]',perm_type ='user',prole ='writer',notify = true,email_message =“這是一個(gè)測試文件”)

使用Python的Google表自動化|分析Vidhya

管理工作表

每個(gè)電子表格都是工作表的集合。一個(gè)簡單的類比是一本書具有多頁的方式。使用GSPREAD,用戶可以訪問,修改,刪除或創(chuàng)建新的工作表。讓我們看一下這些功能。

工作表選擇

可以使用工作表對象的以下方法訪問電子表格對象的工作表:

  • 索引訪問: “ get_worksheet()”功能在需要訪問的工作表的索引中。
  • 按標(biāo)題訪問: “工作表()”函數(shù)在工作表的標(biāo)題中獲取。請注意,工作表標(biāo)題本質(zhì)上是獨(dú)一無二的,因此,沒有兩個(gè)工作表可以具有相同的標(biāo)題。
  • DOT符號快捷方式訪問: DOT符號快捷法允許訪問電子表格的第一個(gè)工作表,而無需給出標(biāo)題,索引或ID。
  • 訪問全部: “工作表()”功能返回電子表格的所有工作表。它將它們作為GSPREAD工作表對象返回。 “標(biāo)題”和“ ID”是此類的一些重要屬性,可幫助以龐大的方式訪問所需的工作表。
  • ID訪問:在開發(fā)自動化腳本時(shí),可能在某些用例中處理工作表ID而不是標(biāo)題。在這種情況下,可以使用“ get_worksheet_by_id()”功能。

這是所有列出的方法的示例代碼。

打?。╯h.get_worksheet(0))
打?。╯h.worksheet(“ aTRECTWORKSHEET1”))
打?。╯h.sheet1)
打?。╯h.get_worksheet_by_id(0))

打?。ā艾F(xiàn)在獲取所有床單...”)

##返回所有工作表
對於sh.worksheets中的WS():
    打印(WS)

所有這些打印語句返回工作表對象

使用Python的Google表自動化|分析Vidhya

創(chuàng)建新的工作表

除了電子表格中的現(xiàn)有工作表外,我們還可以在同一電子表格中編程創(chuàng)建新的工作表。當(dāng)從現(xiàn)有工作表處理數(shù)據(jù)並在單獨(dú)的工作表中發(fā)布結(jié)果時(shí),這種方法可能很有用。

要創(chuàng)建一個(gè)新的工作表,我們需要使用工作表對象的“ add_worksheet()”函數(shù)。它採用以下參數(shù)。

  • 標(biāo)題:工作表的標(biāo)題
  • 行,列,索引(可選):我們需要定義新創(chuàng)建的工作表的行和列數(shù)。 “索引”參數(shù)是可選的,它控制工作表的排序。

以下代碼將創(chuàng)建一個(gè)帶有100行和20列的工作表,並將工作表放在第二個(gè)位置。

 sh.add_worksheet('tractworksheet1.5',行= 100,cols = 20,index = 1)

它確實(shí)將其放置在第二個(gè)位置(索引1)

使用Python的Google表自動化|分析Vidhya

重命名工作表

您可以使用工作表對象的update_title()函數(shù)重命名工作表標(biāo)題,該函數(shù)接受新標(biāo)題作為參數(shù)。

打?。╯h.worksheet(“ aTRECTWORKSHEET3”)。update_title(“ trictworksheet2.5”))

刪除工作表

可以使用工作表對象的以下函數(shù)從電子表格中刪除工作表:

  • 使用工作表對象刪除工作表: “ del_worksheet()”功能將工作表對像作為參數(shù),並從電子表格中刪除工作表。
  • 使用工作表ID刪除工作表: “ del_worksheet_by_id()”功能將工作表ID作為刪除工作表的輸入。

使用的功能的選擇取決於製作腳本的用例。以下是代碼示例,證明了這兩個(gè)功能的使用情況。

 sh.del_worksheet(sh.worksheet(“ aTRECTWORKSHEET2.5”))
sh.del_worksheet_by_id('602396579')

細(xì)胞性質(zhì)

我們正在從上到下慢慢縮小,並到達(dá)工作表中最?。ㄒ彩亲钪匾模﹩卧?,即一個(gè)單元。單元格是一行和列的交點(diǎn)。對於GSPREAD庫,它擁有以下屬性:

  • 行:單元的行號
  • Col:單元的列號
  • 值:單元的值
  • 地址: A1表示法中單元格的地址

以下示例代碼訪問單元格的所有屬性。使用工作表的單元格返回特定的檢查單元格。

 samplecell = sh.worksheet(“ aTRECTWORKSHEET1”)。小區(qū)(行= 1,col = 1)
print('row:{} \ ncolumn:{} \ nValue:{} \ naddress:{}'。格式(Samplecell.Row,samplecell.col,samplecell.col,samplecell.value,samplecell.address.address))

使用Python的Google表自動化|分析Vidhya

一旦我們處理庫的高階功能,所有這些訪問者就會發(fā)揮作用。

添加新的行和列

讓我們開始在現(xiàn)有的示例工作表中添加新的行和列,以便為本指南的後面部分提供一些數(shù)據(jù)。 Gspread庫以兩種方式支持插入作為操作。

插入特定位置

您可以使用insert_row(),insert_rows()和insert_cols()函數(shù)在特定位置插入一行或列。這些功能使我們可以在工作表中的特定位置添加行或列。功能細(xì)節(jié)如下:

  • Insert_row:該函數(shù)需要“值”參數(shù)作為要插入的值列表。列表中的值順序確定插入行的順序。默認(rèn)為1的“索引”參數(shù)指定行插入的位置。可選參數(shù)(例如“ value_input_option”和“ sashit_from_before”)控制該函數(shù)如何解釋輸入數(shù)據(jù)和行,以及它是否應(yīng)直接推動數(shù)據(jù)或分析數(shù)據(jù),就好像用戶在UI中輸入一樣。
  • insert_rows:它以插入多行的“值”參數(shù)中的列表列表。每個(gè)列表充當(dāng)一行。在內(nèi)部,這是如何通過GSPREAD將行插入工作表中的實(shí)際實(shí)現(xiàn)。 “ insert_row()”函數(shù)稱為“ insert_rows()”函數(shù),因此,對於“ insert_row()”函數(shù)所描述的所有參數(shù)對於“ insert_rows()”為true,除了一個(gè)參數(shù)。在insert_row()函數(shù)中,您可以使用索引參數(shù)確定偏移量,而在insert_rows()函數(shù)中,您可以使用行參數(shù)指定它。
  • insert_cols:此函數(shù)是“ insert_rows()”功能的複製品,其更改的參數(shù)名稱從“行”到“ col”。其餘的可選參數(shù)功能保持不變。

表範(fàn)圍後插入

此插入僅適用於行。它使我們能夠在特定表範(fàn)圍內(nèi)插入行,該範(fàn)圍未知位置。同樣,插入可以單一或多行方式進(jìn)行。

  • append_row:它通過“值”參數(shù)將行值作為列表。 “ table_range”參數(shù)有助於定義表範(fàn)圍應(yīng)發(fā)生的表範(fàn)圍。該範(fàn)圍以A1表示法給出。
  • append_rows:同樣,“ insert_rows()”,“ append_rows()”是表範(fàn)圍之後的行插入的實(shí)際實(shí)現(xiàn)。兩個(gè)函數(shù)的所有參數(shù)都與“ append_rows()”列出“值”參數(shù)列表的差異保持不變。

這是示例代碼:

  • 為列添加一行:a,b,c和d
  • 在這些列下添加4行
sampamworksheet.insert_row(
    ['a','b','c','d']
)
sampleworksheet.insert_rows(
    [
        ['kg',54,23,12],
        ['og',34,12,34],
        ['Me',23,45,90],
        ['ye',65,12,54]
    ],行= 2
)

使用Python的Google表自動化|分析Vidhya

現(xiàn)在,讓我們在此上做以下步驟:

  • 附加2行要在此表範(fàn)圍內(nèi)繼續(xù)
  • 添加另一列E
 sampleworksheet.append_rows(
    [
        ['sn',67,87,45],
        ['ar',56,23,65]
    ],,
    table_range =“ a1:d5”
)
sampleworksheet.insert_cols(
    [
        ['e',56,34,65,34,76,45]
    ],,
    col = 5
)

使用Python的Google表自動化|分析Vidhya

注意:示例工作表變量包含工作表對象,並且在整個(gè)指南中都將參考。

獲取單元格和範(fàn)圍值

在最後一節(jié)中,我們使用各種插入操作以編程方式準(zhǔn)備數(shù)據(jù)?,F(xiàn)在,我們可以使用各種讀取功能獲取插入的數(shù)據(jù)。我們將看到如何獲取單元格,然後移動以從一系列單元格和整個(gè)工作表中獲取值。

獲取單個(gè)單元格

工作表上的最基本讀取操作涉及獲取以前部分中所述的值或任何其他單元格屬性。要獲取單個(gè)單元格,有兩個(gè)功能:

  • ACELL:這將在A1表示法中獲取單元格地址並返回單元對象。
  • 單元格:這將按(行,列)的順序取用單元格坐標(biāo)。

這兩個(gè)函數(shù)都返回一個(gè)單元對象,我們已經(jīng)看到瞭如何從這些對像中獲取值。 ACELL功能在我們與Google Sheets API建立連接的部分中使用。

打印(sampleworksheet.acell('a1')。行)
打印(sampleworksheet.cell(1,1)。值)

獲取工作表或範(fàn)圍的所有單元格

  • 我們可以使用工作表對象的“ get_all_cells()”函數(shù)在單元對象列表中獲取工作表的所有單元格。此功能沒有參數(shù),可以在工作表對像上直接調(diào)用。
  • 要獲取特定範(fàn)圍的單元對象,請使用工作表對象的範(fàn)圍()函數(shù)。此功能接受各種輸入形式,例如A1表示法,數(shù)字邊界或命名範(fàn)圍。如果沒有輸入,它將在單個(gè)API調(diào)用中返回工作表中的所有單元格。對於涉及單元格性質(zhì)的用例,此功能有助於濾除所需的單元格並執(zhí)行進(jìn)一步的動作。
 print(sampleworksheet.get_all_cells())
打?。╯ampleworksheet.range('b4:e5'))

獲取細(xì)胞範(fàn)圍的值

用戶通常在同一工作表中創(chuàng)建多個(gè)微型表,以更好地訪問性。在這種情況下,我們需要將獲取範(fàn)圍改進(jìn)到這些表範(fàn)圍的確切地址。要獲取此類表範(fàn)圍,我們可以使用工作表對象的以下兩個(gè)功能:

  • get: “ get()”函數(shù)將表範(fàn)圍符合A1符號或命名範(fàn)圍,並返回值列表。
  • batch_get: “ get()”功能只能佔(zhàn)一個(gè)範(fàn)圍,但是如果我們要處理多個(gè)範(fàn)圍,我們可以使用batch_get。此功能使一個(gè)API調(diào)用,節(jié)省了成本。
打?。?get範(fàn)圍:{}'。格式(sampleworksheet.get(“ a1:d4”)))
print('批次獲取範(fàn)圍:{}'。格式(sampleworksheet.batch_get([[[[
    “ A1:D4”,
    “ B4:E3”
)))

使用Python的Google表自動化|分析Vidhya

從行或列獲取所有值

我們可以使用工作表對象的“ Row_values()”和“ Col_values()”函數(shù)獲取行或列的所有值。這兩個(gè)功能都採用行或列的位置(編號為1),然後返回列表中的值。

打?。╯ampleworksheet.row_values(1))
打?。╯ampleworksheet.col_values(4))

使用Python的Google表自動化|分析Vidhya

獲取整個(gè)工作表值

獲取整個(gè)工作表的最佳用例之一是將這些數(shù)據(jù)直接加載到熊貓數(shù)據(jù)框架中,然後根據(jù)要求進(jìn)行後處理或分析??梢允褂霉ぷ鞅韺ο蟮囊韵鹿δ芊祷卣麄€(gè)數(shù)據(jù):

  • 列表列表: “ get_all_values()”函數(shù)將每一行返回列表,然後在一個(gè)列表中列出所有行列表。此函數(shù)是對“ get_values()”函數(shù)的別名,但有趣的是,“ get_values()”函數(shù)是使用“ get(get()”函數(shù)實(shí)現(xiàn)的。沒有任何輸入的“ get()”函數(shù)返回列表。因此,所有3個(gè)功能都是相同的。
  • 字典列表: “ get_all_records()”函數(shù)返回字典列表。每個(gè)字典都是一個(gè)鍵值映射,其中鍵是第一行值,而值為下一個(gè)行值。每一行都有其詞典。默認(rèn)情況下,它假設(shè)第一行是鍵,但是我們可以使用“標(biāo)頭”參數(shù)將另一個(gè)行作為鍵。還有一些其他參數(shù),可以幫助處理空細(xì)胞和預(yù)期的標(biāo)頭。

您可以將這兩個(gè)功能的輸出直接傳遞到熊貓數(shù)據(jù)框架功能,以作為熊貓數(shù)據(jù)室獲取工作表表。

導(dǎo)入大熊貓作為pd
打?。╬d.dataframe(sampleworksheet.get_all_records()))
打?。╬d.dataframe(sampleworksheet.get_all_values()))

使用Python的Google表自動化|分析Vidhya

更新單元格

更新電子表格的現(xiàn)有數(shù)據(jù)是最關(guān)鍵的功能,可以使用GSPREAD庫功能輕鬆執(zhí)行。有多種方法可以通過單個(gè)API調(diào)用來更新電子表格的單元格,單個(gè)單元格更新為範(fàn)圍的多個(gè)單元格。

更新單個(gè)單元格

可以使用工作表對象的以下功能更新工作表的單個(gè)單元格。

  • update_acell:此功能需要兩個(gè)參數(shù),即A1表示法中的單元格地址和要更新的值
  • update_cell:此功能以行列訂單為單元格的坐標(biāo)和更新的值
  • 更新:儘管此功能具有更新多個(gè)單元格的更大範(fàn)圍,但它也可以用於更新單個(gè)單元格。輸入?yún)?shù)順序與上述兩個(gè)函數(shù)不同。 “ update()”函數(shù)將列表列表作為第一個(gè)值,然後是單元格地址。
打?。╯ampleworksheet.update_acell('a2','kaustubh'))
打?。╯ampleworksheet.update_acell('a3','oggy'))
打?。╯ampleworksheet.update([[['hello']],'a4'))

使用Python的Google表自動化|分析Vidhya

更新一系列單元格

您可以使用工作表對象的以下兩個(gè)功能在工作表中更新一個(gè)單元格。

  • update_cells:此功能與“ range()”函數(shù)結(jié)合使用。 “ update_cells()”功能將輸入作為單元格列表。該單元格可以通過從範(fàn)圍函數(shù)返回並訪問其值屬性的單元對像上循環(huán)來改變其值。
  • 更新:如前所述,您可以使用此功能更新命名範(fàn)圍或A1註釋範(fàn)圍。
 rangeofcells = sampleworksheet.range('b2:b7')
對於範(fàn)圍內(nèi)的細(xì)胞:
    newValue = int(cell.value)10
    cell.value = newValue
打?。╯ampleworksheet.update_cells(rangeofcells))

上面的代碼獲取了一系列單元格,為其值添加10個(gè),並在單個(gè)API調(diào)用中更新它們。

更新多個(gè)單元格

在上面的一節(jié)中,我們能夠通過單個(gè)API調(diào)用更新一個(gè)範(fàn)圍內(nèi)的多個(gè)單元格。此行為也可以擴(kuò)展到多個(gè)範(fàn)圍。這意味著我們可以用一個(gè)呼叫更新多個(gè)單元格。 “ batch_update()”函數(shù)以鍵和值列表列出了字典列表。範(fàn)圍鍵值應(yīng)為A1表示法範(fàn)圍或命名範(fàn)圍,而值鍵值作為值列表。

範(fàn)圍1 ='c2:c7'
range2 ='e2:e7'
butrangeValues = sampleworksheet.batch_get [[[[
    範(fàn)圍1,
    範(fàn)圍2
)))
range1values,range2values = butrangeValues
range1updatedValues = [[int(x [0])10]在range1values中的x]
range2updatedValues = [[int(x [0])20]在range2values中的x]
打?。╯ampleworksheet.batch_update([[
    {
        “範(fàn)圍”:range1,
        “值”:range1updatedValues
    },,

    {
        “範(fàn)圍”:range2,
        “值”:range2updatedValues
    }
)))

上面的代碼使用“ batch_get()”函數(shù)獲取兩個(gè)範(fàn)圍,然後在本地更新其值,然後使用“ batch_update()”函數(shù)將更新的值推回Google表。此更新的輸出看起來像這樣:

使用Python的Google表自動化|分析Vidhya

刪除行和列

直到這一點(diǎn),我們還插入,閱讀和更新了工作表中的數(shù)據(jù)。我們可以執(zhí)行刪除操作,以從工作表中刪除冗餘或不必要的數(shù)據(jù)。 “ delete_rows()”和“ delete_colums()”函數(shù)採用要刪除的“ start_index”。如果指定了“ end_index”,則它將刪除開始和結(jié)束的索引範(fàn)圍內(nèi)的所有列。

打?。╯ampleworksheet.delete_columns(4))
打?。╯ampleworksheet.delete_rows(6))

搜索單元格

Google表API使您可以通過匹配字符串或正則表達(dá)式來搜索單元格。您可以執(zhí)行對案例敏感或不敏感的搜索,並根據(jù)需要將搜索範(fàn)圍縮小到特定的行或列。使用這兩個(gè)工作表函數(shù)查找匹配的單元格:

  • 查找: “ find()”函數(shù)返回比賽的第一次出現(xiàn)。這將帶有搜索字符串或正則式,“ in_row”或“ in_column”參數(shù),以縮小搜索範(fàn)圍和“ case_sentive”標(biāo)誌以控制搜索類型。 “ in”參數(shù)為行或列位置(索引1)
  • Findall: “ findall()”是“ find()”功能的高級階段,它返回搜索的所有匹配項(xiàng)。
導(dǎo)入
打印(sampleworksheet.find('64',in_column = 2))
searchre = re.compile(r'(a | a)')
打?。╯ampleworksheet.findall(搜索))

使用Python的Google表自動化|分析Vidhya

格式化細(xì)胞

在Excel中,您可以以各種方式格式化工作表,包括文本亮點(diǎn),格式,邊框,對齊和眾多功能。 Google表還為單元格提供了多種格式選項(xiàng)。 Google Sheaps單元單元文檔中可以找到整個(gè)字段列表。

您可以使用GSpread Worksheet對象的格式()函數(shù)來指定要應(yīng)用格式的單元格或範(fàn)圍。提供格式為JSON字典,其中包括所有格式的密鑰字段及其值。

以下代碼將對錶的所有單元格應(yīng)用邊界。

 borderformatting = {
    “樣式”:“固體”,
    “ colorStyle”:{“ rgbcolor”:{“ red”:0,“綠色”:0,“藍(lán)色”:0,“ alpha”:1}},
}

列印(
    sampleworksheet.format(
        “ A1:D6”,
        格式= {
            “邊界”:{
                “ top”:邊緣形式,
                “底部”:邊緣形式,
                “左”:邊緣形式,
                “右”:邊緣形式,
            },,
        },,
    )
)

我們還可以應(yīng)用批處理格式,以同時(shí)格式化多個(gè)範(fàn)圍。這節(jié)省了很多時(shí)間為每一個(gè)新更改編寫不同的格式。 “ batch_format()”功能獲取包含兩個(gè)重要鍵的字典列表。第一個(gè)密鑰是定義單元格範(fàn)圍的範(fàn)圍鍵和包含格式字典的格式密鑰。

讓我們使用“ batch_format()”函數(shù)在我們的示例表上進(jìn)行以下操作:

  • 將邊界應(yīng)用於表的所有單元格。
  • 大膽地將第一行的文本大膽,表明這些是我們表的列。
  • 對齊中心中的所有數(shù)據(jù)。
  • 為列添加淺藍(lán)色(第一行)。
 borderformatting = {
    “樣式”:“固體”,
    “ colorStyle”:{“ rgbcolor”:{“ red”:0,“綠色”:0,“藍(lán)色”:0,“ alpha”:1}},
}
格式= [
    {
        “範(fàn)圍”:“ a1:d6”,
        “格式”: {
            “邊界”:{
                “ top”:邊緣形式,
                “底部”:邊緣形式,
                “左”:邊緣形式,
                “右”:邊緣形式,
            },,
            “水平安排”:“中心”,
        },,
    },,
    {
        “範(fàn)圍”:“ A1:D1”,
        “格式”: {
            “ textformat”:{
                “大膽”:是的,
            },,
            “ backgroundColorStyle”:{
                “ rgbcolor”:{“紅色”:0.8,“綠色”:0.8,“藍(lán)色”:1,“ alpha”:0.8}
            },,
        },,
    },,
這是給出的

打?。╯ampleworksheet.batch_format(格式))

這是我們桌子的最後狀態(tài)。

使用Python的Google表自動化|分析Vidhya

清晰的單元格和工作表

我們可能希望在執(zhí)行操作之前清除範(fàn)圍。為了清除單元格範(fàn)圍,使用工作表對象的“ batch_clear()”函數(shù)。這是需要清除的範(fàn)圍列表。讓我們從我們的示例表中清除C列。

 print(sampleworksheet.batch_clear([“ C1:C6”]))

使用Python的Google表自動化|分析Vidhya

注意:清除函數(shù)僅清除值而不是應(yīng)用的格式。

可以使用工作表對象的“ clear()”函數(shù)清除整個(gè)工作表。

打?。╯ampleworksheet.clear())

請查看有關(guān)如何使用Python自動化Google表的文章

Google API的局限性

我們使用GSPREAD庫在Google表上進(jìn)行了許多操作。該庫只是一個(gè)包裝器,將用戶通過的數(shù)據(jù)準(zhǔn)備成可接受的格式,並使API調(diào)用與床單相關(guān)的Google項(xiàng)目。它的工作原理,以便開發(fā)人員不需要了解基本的API呼叫,有效載荷和響應(yīng)。開發(fā)人員僅與抽象函數(shù)進(jìn)行交互。

  • 了解API配額消耗:開發(fā)人員必須了解API調(diào)用的配額,尤其是對於生產(chǎn)和關(guān)鍵任務(wù)。
  • 免費(fèi)但受限的用法:Google表API是免費(fèi)的,但對可以進(jìn)行的API呼叫的數(shù)量有限制。
  • 常見錯(cuò)誤 - 429(“太多請求”) :許多用戶由於超出API呼叫限製而遇到429錯(cuò)誤。
  • 配額限制示例:當(dāng)前配額允許每個(gè)項(xiàng)目每分鐘300個(gè)請求。
  • 超過配額:如果腳本發(fā)送300多個(gè)請求,則不會處理其他請求。
  • 指數(shù)向後解決方案:使用隨機(jī)等待時(shí)間的重試機(jī)制,可以幫助管理這些限制。

結(jié)論

在本指南中,我們創(chuàng)建了一個(gè)Google Service帳戶,以執(zhí)行所有將在Google Shays UI上執(zhí)行的操作。我們探索了許多功能,例如添加,更新和刪除數(shù)據(jù)。我們還探索瞭如何使用Python進(jìn)行格式化和Google表自動化。

Google Sheets API提供了更多功能,例如合併單元格,製作受保護(hù)的範(fàn)圍,隱藏單元格,添加音符,複製範(fàn)圍,甚至添加過濾器,所有操作以編程方式!儘管GSpread庫的文檔缺乏這些解釋,但可以繼續(xù)探索Google Sheeps官方文檔,並檢查GSpread文檔的API參考部分,該文檔的API參考部分提供了有關(guān)圖書館中實(shí)現(xiàn)的所有功能的高級信息。

關(guān)鍵要點(diǎn)

  • Google表自動化需要設(shè)置Google Cloud項(xiàng)目,這不會造成任何成本。但是,如果您不優(yōu)化代碼,則可能會耗盡配額,從而導(dǎo)致代碼後期出現(xiàn)錯(cuò)誤。旨在盡可能使用批處理功能。
  • 使用Google表API可以實(shí)現(xiàn)的目標(biāo)有很多可能性,而GSpread庫只是一個(gè)起點(diǎn)。應(yīng)該探索官方文檔以實(shí)現(xiàn)圖書館中缺少的功能(也許可以貢獻(xiàn))
  • 您可以使用Google表自動化設(shè)置來構(gòu)建維護(hù)主記錄的採購管道,並將其推向更高級的數(shù)據(jù)庫,例如OLAP數(shù)據(jù)庫。將這些數(shù)據(jù)庫連接到BI軟件,例如Tableau,以完成端到端項(xiàng)目。
  • Google表自動化可以通過設(shè)置自動更新,導(dǎo)入或組織數(shù)據(jù)的工作流來幫助您消除手動數(shù)據(jù)輸入,從而大大提高效率。
  • 使用Google表自動化,您可以安排重複的任務(wù),例如發(fā)送報(bào)告,執(zhí)行計(jì)算或更新單元格,從而減少重複手動操作的需求。

常見問題

Q1。如何避免“ 429:太多請求”錯(cuò)誤?

答:應(yīng)該實(shí)施重試機(jī)制,以試圖在一段時(shí)間內(nèi)再次提出請求。一個(gè)這樣的例子是指數(shù)退回算法

Q2。您可以在Google表中進(jìn)行自動化嗎?

答:是的,您可以使用, Google Apps腳本以及ZapierMake(以前是Integromat)(以前是Integrat)等內(nèi)置功能在Google表中自動化任務(wù)。這些允許您自動化重複任務(wù),例如數(shù)據(jù)輸入,格式和計(jì)算。

Q3。 Google有一個(gè)自動化工具嗎?

答:是的,Google提供了Google Apps腳本,這是一個(gè)基於JavaScript的平臺,可在Google Workspace應(yīng)用程序中自動化任務(wù)(例如,表,文檔,文檔,Gmail)。 Additionally, tools like Google Cloud Workflows and Zapier integrations can be used for broader automation across Google services.

Q4。 How can I set up Google Sheets automations to save time on repetitive tasks?

A. You can set up Google Sheets automations using built-in tools like Macros and Google Apps Script. Macros allow you to record actions and replay them, while Google Apps Script lets you create custom automations using JavaScript. These automations can streamline repetitive tasks such as data entry, formatting, or running specific functions automatically in Google Sheets.

Q5。 What are some popular Google Sheets automations for data analysis?

A. Popular Google Sheets automations for data analysis include automated data import from external sources, scheduled reports using Google Apps Script, and conditional formatting to highlight trends. These automations help optimize the data analysis process, making Google Sheets a powerful tool for managing and interpreting large datasets efficiently.

以上是使用Python的Google表自動化|分析Vidhya的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

AI投資者停滯不前? 3條購買,建造或與人工智能供應(yīng)商合作的戰(zhàn)略途徑 AI投資者停滯不前? 3條購買,建造或與人工智能供應(yīng)商合作的戰(zhàn)略途徑 Jul 02, 2025 am 11:13 AM

投資蓬勃發(fā)展,但僅資本還不夠。隨著估值的上升和獨(dú)特性的衰落,以AI為中心的風(fēng)險(xiǎn)投資的投資者必須做出關(guān)鍵決定:購買,建立或合作夥伴才能獲得優(yōu)勢?這是評估每個(gè)選項(xiàng)和PR的方法

AGI和AI超級智能將嚴(yán)重?fù)糁腥祟愄旎ò宓募僭O(shè)障礙 AGI和AI超級智能將嚴(yán)重?fù)糁腥祟愄旎ò宓募僭O(shè)障礙 Jul 04, 2025 am 11:10 AM

讓我們來談?wù)劇? 對創(chuàng)新AI突破的分析是我正在進(jìn)行的AI中正在進(jìn)行的福布斯列覆蓋的一部分,包括識別和解釋各種有影響力的AI複雜性(請參閱此處的鏈接)。 前往Agi和

Kimi K2:最強(qiáng)大的開源代理模型 Kimi K2:最強(qiáng)大的開源代理模型 Jul 12, 2025 am 09:16 AM

還記得今年早些時(shí)候破壞了Genai行業(yè)的大量開源中國模型嗎?儘管DeepSeek佔(zhàn)據(jù)了大多數(shù)頭條新聞,但Kimi K1.5是列表中的重要名字之一。模型很酷。

未來預(yù)測從AI到AGI的道路上的大規(guī)模情報(bào)爆炸 未來預(yù)測從AI到AGI的道路上的大規(guī)模情報(bào)爆炸 Jul 02, 2025 am 11:19 AM

讓我們來談?wù)劇? 對創(chuàng)新AI突破的分析是我正在進(jìn)行的AI中正在進(jìn)行的福布斯列覆蓋的一部分,包括識別和解釋各種有影響力的AI複雜性(請參閱此處的鏈接)。對於那些讀者

Grok 4 vs Claude 4:哪個(gè)更好? Grok 4 vs Claude 4:哪個(gè)更好? Jul 12, 2025 am 09:37 AM

到2025年中期,AI“軍備競賽”正在加熱,XAI和Anthropic都發(fā)布了他們的旗艦車型Grok 4和Claude 4。這兩種模型處於設(shè)計(jì)理念和部署平臺的相反端,但他們卻在

推理模型的思想鏈可能無法長期解決 推理模型的思想鏈可能無法長期解決 Jul 02, 2025 am 11:18 AM

例如,如果您向模型提出一個(gè)問題,例如:“(x)人在(x)公司做什麼?”您可能會看到一個(gè)看起來像這樣的推理鏈,假設(shè)系統(tǒng)知道如何檢索必要的信息:找到有關(guān)CO的詳細(xì)信息

參議院殺死了特朗普的預(yù)算法案中的10年州AI禁令 參議院殺死了特朗普的預(yù)算法案中的10年州AI禁令 Jul 02, 2025 am 11:16 AM

參議院星期二早上以99-1投票,殺死了暫停,在倡導(dǎo)團(tuán)體,立法者和成千上萬的美國人中的最後一分鐘的騷動中,他們將其視為危險(xiǎn)的過度。他們沒有保持安靜。參議院傾聽。國家保持

這家初創(chuàng)公司在印度建立了一家醫(yī)院來測試其AI軟件 這家初創(chuàng)公司在印度建立了一家醫(yī)院來測試其AI軟件 Jul 02, 2025 am 11:14 AM

臨床試驗(yàn)是藥物開發(fā)中的巨大瓶頸,Kim和Reddy認(rèn)為他們在PI Health建立的AI-Spainite軟件可以通過擴(kuò)大潛在符合條件的患者的庫來更快,更便宜。但是

See all articles