Pythons syntax kan till en början verka konstigt och ovanligt. Men det är lätt att lära sig och använda när du väl har fått kläm på det. Python driver kodningsspel som Minecraft Pi Edition, många maskininlärningsalgoritmer och en mängd webbplatser.
Men i den här artikeln kommer du att lära dig hur du läser och skriver till Google Sheets med Python.
Google Setup
Innan du hoppar in i koden finns det några inledande inställningar för att komma ur vägen på Google Sheets.
Skapa först ett nytt ark till dig själv. Du kan hoppa över det här steget om du redan har ett sådant. Vi använder en lista över rallybilar för detta exempel. Men du kan följa den här handledningen med dina egna data:
Nu måste du ställa in dina delningsalternativ. Men först måste du generera Signerade inloggningsuppgifter från Google Developers Console. Det är lätt; navigera till Google Developers Console och följ dessa steg:
- Klick SKAPA PROJEKT för att skapa ett nytt projekt (eller använda ett befintligt):
Ge ditt projekt ett passande namn och klicka sedan SKAPA:
Klicka på aviseringen som dyker upp VÄLJ PROJEKT nedanför projektet du just skapade för att hoppa in i det. Dra ut sidomenyn och håll muspekaren över API:er och tjänster, välj sedan instrumentbräda. Klick AKTIVERA API:ER OCH TJÄNSTER längst upp på sidan. Välj bland alternativen Google Sheets API (använd sökfältet om du inte hittar det):
Välja GÖR DET MÖJLIGT:
Klick SKAPA Autentiseringsuppgifter och välj Referenser från vänstermenyn:
Klicka på SKAPA Autentiseringsuppgifter knappen högst upp på sidan:
Välj sedan Servicekonto:
Fyll i fältet för tjänstkontonamn och klicka SKAPA, följd av GJORT:
Du kommer att se tjänstekontot nu listat i Servicekonton tabell längst ner på nästa sida. Klicka på redigeringsikonen bredvid:
Välja NYCKLAR. Klicka sedan på LÄGG TILL NYCKEL knappen och välj Skapa ny nyckel:
Välja JSON som format:
Klick SKAPA, och en JSON-fil bör laddas ner till din PC. Flytta detta till din projektkatalog och ge det ditt föredragna namn med ett tillägg .json filformat. Öppna slutligen filen och leta efter client_email. Det här borde vara något i stil med: id.gserviceaccount.com. Kopiera den här adressen. Öppna Google Kalkylark och dela det med den här e-postadressen (Överst till höger > Dela med sig > Skriv in e-mail). Klicka på e-postadressen när den visas och tryck sedan Skicka att ge tillträde.
Det var allt för Google Sheets-sidan.
Python-inställning
Om du kör Windows OS kan du behöva ladda ner och installera Python. Du behöver inte bry dig om det om du använder macOS eftersom det kommer med Python redan installerat.
Öppna först en ny terminal och skapa en virtuell Python-miljö.
Du måste installera ett webbauktoriseringsramverk som heter oauth2client. Det är lätt att installera med hjälp av pip:
pip install oauth2client
Du kan behöva installera PyOpenSSL också, beroende på din inställning:
pip install PyOpenSSL
Nu måste du också installera ett Google Sheets-kommunikationspaket som heter gspread. Återigen, detta är lätt att installera med hjälp av pip:
pip install gspread
Öppna nu din favorittextredigerare. Skapa sedan en ny Python-fil med en tillagd .py filtillägget och spara det i din projektkatalog.
Tillbaka i din terminal, CD i din projektkatalog. Du kan använda dir för att lista filerna i den katalogen. Du kan också visa din arbetskatalog om du vill.
Väl i din projektkatalog kan du alltid köra ditt Python-skript genom att anropa det via kommandoraden så här:
python [file_name].py
Utdata från din kod visas sedan på din kommandorad.
Nu när Python fungerar, låt oss gå vidare och ställa in biblioteken. Öppna Python-filen du skapade tidigare och importera följande bibliotek:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import json
Kör sedan koden.
Om saker och ting fungerar korrekt kommer ingenting att hända. Om du får ett fel, kanske säger ingen modul med namnet X där X är namnet på någon av de importerade modulerna, se först till att du har aktiverat din virtuella miljö.
Du kan också visa listan över alla moduler du har installerat i den miljön genom att köra pip frysa via kommandoraden. Om den saknade modulen inte finns där, kör sedan pip installera [module] om igen. Se till att du undviker stavfel.
Här är koden för att komma igång med att läsa och skriva dina Google Kalkylark:
from oauth2client.service_account import ServiceAccountCredentials
import gspread
import json
scopes = [
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive'
]
credentials = ServiceAccountCredentials.from_json_keyfile_name("[JSON_key_name].json", scopes) #access the json key you downloaded earlier
file = gspread.authorize(credentials) # authenticate the JSON key with gspread
sheet = file.open("Python_MUO_Google_Sheet") #open sheet
sheet = sheet.sheet_name #replace sheet_name with the name that corresponds to yours, e.g, it can be sheet1
Det kodblocket hämtar din information från .json fil som innehåller din autentiseringsnyckel. Sedan använder den den för att autentisera med Google med hjälp av gspread modul. Det öppnar sedan ett ark som heter Python_MUO_Google_Sheet. Du kan behöva ändra detta till namnet på ditt arbetsblad (förutsatt att du har delat det korrekt). Python är skiftlägeskänsligt, så se till att du anger den här koden korrekt.
Läsa dina Google Sheets med Python
Nu när allt är konfigurerat är det enkelt att läsa eller skriva data i Google Sheets med Python. Så här väljer du ett område av celler (i det här fallet alla bilceller):
all_cells = sheet.range('A1:C6')
print(all_cells)
Så här ser det ut:
Utdata ovan ser inte bra ut eftersom Python har dumpat innehållet utan hänsyn till formatering.
Så här är hur du skriver ut alla cellvärden i ett snyggare format med Pythons for loop och den inbyggda värde fungera:
for cell in all_cells:
print(cell.value)
Och det ser ut så här:
Det är möjligt att komma åt celler individuellt:
A1 = sheet.acell('A2').value
print(A1)
Output: Ford
Eller så kan du använda cellkoordinaterna. Detta sker på ett rad för kolumn sätt. Till exempel får koden nedan data på den femte raden och den tredje kolumnen:
coord = sheet.cell(5, 3).value
Det är lätt att få alla värden för en rad också:
row = sheet.row_values(1) #first row
print(row)
Eller så kan du få en hel kolumn. Exemplet nedan får den andra kolumnen:
col = sheet.col_values(2)
print(col)
Skriva till dina Google Sheets
Det är lika enkelt att skriva tillbaka till arket, och du kan använda cellnamn eller koordinater precis som när du läser:
sheet.update_acell('C2', 'Blue')
sheet.update_cell(2, 3, 'Blue') #updates row 2 on column 3
Att uppdatera ett cellintervall är också enkelt:
sheet.update('A2:B3', [["Not Ford", "Not Lancia"], ["Nothing", "Not"]])
Notera: Du kan lägga till ditt ark genom att uppdatera de tomma celler som du vill lägga till data i med hjälp av uppdatering() metod också.
Formatera rubrikerna på dina Google Kalkylark till fet text om du vill:
sheet.format('A1:C1', {'textFormat': {'bold': True}})
Du kan också använda gspread tillsammans med pandor och numpy. Ta en titt på gspread-dokumenten om du vill veta mer om de olika vändningarna och justeringarna kring detta.
Om du skriver till ett viktigt blad som du hanterar med andra människor, kanske du vill överväga ett säkerhet cell. Lagra ett värde i en viss cell och läs sedan den cellen först. Om innehållet har ändrats har andra ändrat eller lagt till kolumner på arket, så du får inte fortsätta med att skriva. Så här kan du uppnå det:
if sheet.acell('B3') != 'SAFETY':
# something has changed in the sheet, DO NOT PROCEED
print("Sheet already updated.")
else:
# continue with your writing
sheet.update_acell('C2','Blue')
Det är bra praxis. Det säkerställer att ditt skript inte av misstag kan skriva in i en redan uppdaterad kolumn. Det är dock inte ett substitut för korrekta säkerhetskopior.
Automatisera dina kalkylbladsuppgifter med Python
Nu när du kan grunderna, fortsätt och gör något coolt! Istället för att uppfinna hjulet på nytt kan du automatisera uppgifter genom att skapa dedikerade och anropsbara funktioner som läser och skriver till dina Google Sheets.
Dessutom, om du också använder Microsoft Excel, kan du importera Excel-data till Python-skript och manipulera ditt Excel-kalkylblad som du vill.
Om författaren
Idowu Omisola (124 artiklar publicerade)
Idowu brinner för allt smart teknik och produktivitet. I hans free tid, han leker med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig loss från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Mer från Idowu Omisola
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
