Työkirjojen lukeminen
Avaa ja lue Excel-tiedostoja
Työkirjojen lukeminen on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.
Excel Pythonilla
openpyxl on vakiokirjasto nykyaikaisten Excel-tiedostojen (.xlsx-muoto) lukemiseen ja kirjoittamiseen. Sen avulla Python voi automatisoida taulukkolaskentatehtäviä, jotka muuten tehtäisiin käsin.
Tässä oppitunnissa keskitytään tiedostojen avaamiseen ja niiden sisällön lukemiseen.
Työkirjan rakenne
Excel-tiedostoilla on selkeä hierarkia, jota openpyxl jäljittelee:
- Työkirja koko tiedosto
- Laskentataulukko yksi sen sisältämä välilehti
- Solu yksi A1-tyylinen arvoja sisältävä ruutu
Siirryt työkirjasta laskentataulukkoon ja siitä soluun.
Tiedoston avaaminen
load_workbook('data.xlsx') lukee tiedoston ja palauttaa työkirjan. Jos suuresta tiedostosta on tarkoitus vain lukea tietoja, välitä read_only=True, jotta rivit käsitellään suoratoistona ja muistia säästyy.
Käytä data_only=True-asetusta, jos haluat lukea kaavasolujen viimeksi lasketun tuloksen kaavan tekstin sijaan.
Taulukon valitseminen
wb.active palauttaa parhaillaan valitun laskentataulukon. wb['Sheet1'] valitsee taulukon nimen perusteella, ja wb.sheetnames luettelee kaikki välilehdet. Oikean taulukon valitseminen on jokaisen lukutoiminnon ensimmäinen vaihe.
sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
print('Selecting sheet:', wanted)
else:
print('Not found, defaulting to', sheetnames[0])Yksittäisen solun lukeminen
Voit käyttää solua sen Excel-osoitteen avulla: ws['A1'].value tai numeroiden avulla: ws.cell(row=1, column=1).value. .value-attribuutti sisältää varsinaisen datan, joka voi olla tekstiä, luku, päivämäärä tai None.
Sarakekirjaimet ja -numerot
Excel-sarakkeet ilmaistaan kirjaimilla (A, B, ... Z, AA), mutta openpyxl käyttää myös numeroita alkaen numerosta 1. Näiden muuntamista tarvitaan toisinaan. Seuraavaksi haetaan kirjainta vastaava sarakenumero.
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))Rivien läpikäynti
ws.iter_rows(values_only=True) palauttaa jokaisen rivin arvojen tuplena. Tämä on selkein tapa lukea taulukko. Ensimmäinen rivi on yleensä otsikkorivi.
Käy rivit silmukassa läpi aivan kuten minkä tahansa iteroitavan kohteen.
rows = [
('Name', 'Age', 'City'),
('Ada', 36, 'London'),
('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
print(dict(zip(header, record)))Käytetyn alueen etsiminen
ws.max_row ja ws.max_column kertovat, kuinka pitkälle data ulottuu. ws.dimensions palauttaa alueen merkkijonona, esimerkiksi 'A1:C10'. Näiden avulla voit välttää tyhjien solujen lukemisen.
Alueen lukeminen
Voit poimia osan laskentataulukosta: ws['A1:C3'] palauttaa soluolioita sisältävien rivituplien tuplen. Tämä on kätevää, kun tarvitset vain osan taulukosta kaikkien rivien sijaan.
Tyhjien solujen käsittely
Tyhjät solut palauttavat arvon None. Todelliset taulukot ovat usein sotkuisia, joten varaudu puuttuviin arvoihin niitä lukiessasi esimerkiksi korvaamalla ne oletusarvolla. Näin myöhemmät käsittelyvaiheet eivät kaadu.
raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)Usean taulukon lukeminen
Työkirjan data voi olla jaettu useille välilehdille, esimerkiksi yksi välilehti kuukautta kohden. Käy wb.sheetnames-luettelo silmukassa läpi, valitse kukin taulukko ja lue se samalla logiikalla. Merkitse jokaiseen riviin sen taulukon nimi, jotta tiedät datan alkuperän.
Tällä tavalla voit yhdistää useiden välilehtien sisällön yhdeksi yhdistetyksi tietojoukoksi.
Pikatarkistus
Testaa lukutaitosi.
Kertaus
Osaat nyt lukea Excel-tiedostoja:
- Hierarkia: työkirja > laskentataulukko > solu
load_workbooksekäread_only- jadata_only-asetukset- Valitse taulukot kohteilla
wb.active,wb['Name']jawb.sheetnames - Lue tietoja kohteilla
.valuejaiter_rows(values_only=True)sekä tarkista arvotmax_row- jamax_column-attribuuteilla - Varaudu tyhjien solujen arvoon
None
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”Työkirjojen lukeminen” ilmainen?
Kyllä – oppitunnin ”Työkirjojen lukeminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Työkirjojen lukeminen”?
Avaa ja lue Excel-tiedostoja Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Työkirjojen lukeminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Työkirjojen lukeminen
- Solujen kirjoittaminen ja tyylittely
- Kaavat ja kaaviot
- Raporttien eräkäsittely