Python Academy · Lektion

Läsa arbetsböcker

Öppna och läs Excel-filer

Lektion 1 av 413 steg

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_workbook med alternativen read_only och data_only
  • Välj kalkylblad via wb.active, wb['Name'] och wb.sheetnames
  • Läs med .value och iter_rows(values_only=True) och kontrollera max_row / max_column
  • Hantera None för tomma celler
Gratis att börja

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.

Alla lektioner i den här kursen

  1. Läsa arbetsböcker
  2. Skriva och formatera celler
  3. Formler och diagram
  4. Batchbearbetning av rapporter
← Tillbaka till Python Academy