Läsa arbetsböcker
Öppna och läs Excel-filer
Läsa arbetsböcker är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.
Excel från Python
openpyxl är standardbiblioteket för att läsa och skriva moderna Excel-filer (formatet .xlsx). Med det kan Python automatisera kalkylbladsuppgifter som annars skulle utföras manuellt.
Den här lektionen fokuserar på att öppna filer och läsa deras innehåll.
Arbetsboksmodellen
Excel-filer har en tydlig hierarki som openpyxl återspeglar:
- Arbetsbok hela filen
- Kalkylblad en flik i filen
- Cell en enskild ruta i A1-format med ett värde
Ni navigerar från arbetsbok till kalkylblad till cell.
Öppna en fil
load_workbook('data.xlsx') läser in en fil och returnerar en arbetsbok. För stora filer som ni bara ska läsa kan ni ange read_only=True för att strömma rader och spara minne.
Använd data_only=True för att läsa det senast beräknade resultatet från formelceller i stället för formeltexten.
Välja ett kalkylblad
wb.active returnerar det aktiva kalkylbladet. wb['Sheet1'] väljer ett kalkylblad efter namn och wb.sheetnames listar alla flikar. Att välja rätt kalkylblad är det första steget vid all läsning.
sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
print('Selecting sheet:', wanted)
else:
print('Not found, defaulting to', sheetnames[0])Läsa en enskild cell
Hämta en cell via dess Excel-adress: ws['A1'].value, eller med rad- och kolumnnummer via ws.cell(row=1, column=1).value. Attributet .value innehåller de faktiska data som kan vara text, ett tal, ett datum eller None.
Kolumnbokstäver och -nummer
Excel-kolumner anges med bokstäver (A, B, ... Z, AA), men openpyxl använder även nummer som börjar på 1. Ibland behöver ni konvertera mellan dem. Här är kolumnnumret för en bokstav.
def col_to_num(letters):
num = 0
for ch in letters.upper():
num = num * 26 + (ord(ch) - ord('A') + 1)
return num
for c in ['A', 'B', 'Z', 'AA']:
print(c, '->', col_to_num(c))Iterera över rader
ws.iter_rows(values_only=True) returnerar varje rad som en tupel med värden. Det här är det enklaste sättet att läsa en tabell. Den första raden är vanligtvis rubriken.
Ni itererar över rader på samma sätt som över alla itererbara objekt.
rows = [
('Name', 'Age', 'City'),
('Ada', 36, 'London'),
('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
print(dict(zip(header, record)))Hitta det använda området
ws.max_row och ws.max_column anger hur långt data sträcker sig. ws.dimensions returnerar en områdessträng som 'A1:C10'. Använd dessa för att undvika att läsa tomma celler.
Läsa ett område
Ni kan ta ett utsnitt av ett kalkylblad: ws['A1:C3'] returnerar en tupel med radtupler som innehåller cellobjekt. Det är praktiskt när ni bara behöver en del av ett kalkylblad i stället för alla rader.
Hantera tomma celler
Tomma celler returnerar None. Kalkylblad i verkligheten är ofta röriga, så hantera saknade värden vid läsning, exempelvis genom att ersätta dem med ett standardvärde. Det förhindrar krascher längre fram.
raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)Läsa från flera kalkylblad
En arbetsbok kan dela upp data över flera flikar, till exempel en per månad. Iterera över wb.sheetnames, välj varje kalkylblad och läs det med samma logik. Märk varje rad med kalkylbladets namn för att hålla reda på ursprunget.
Det här mönstret sammanför många flikar till ett kombinerat dataset.
Snabbkontroll
Testa era kunskaper i att läsa data.
Sammanfattning
Nu kan ni läsa Excel-filer:
- Hierarki: arbetsbok > kalkylblad > cell
load_workbookmed alternativenread_onlyochdata_only- Välj kalkylblad via
wb.active,wb['Name']ochwb.sheetnames - Läs med
.valueochiter_rows(values_only=True)och kontrolleramax_row/max_column - Hantera
Noneför tomma celler
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 320
Vanliga frågor
Är lektionen ”Läsa arbetsböcker” gratis?
Ja – hela texten till ”Läsa arbetsböcker” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Läsa arbetsböcker”?
Öppna och läs Excel-filer Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python Academy?
Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Läsa arbetsböcker”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python Academy-lektionen?
Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.