A Microsoft Excel egy táblázatos szoftver, amelyet táblázatos adatok tárolására és kezelésére használnak. Ezenkívül az Excel segítségével képletek alkalmazásával számítások hajthatók végre, és adat-vizualizációk készíthetők.Számos táblázatban végrehajtott feladat, például matematikai műveletek, automatizálhatók programozással, és sok programozási nyelv rendelkezik modulokkal az Excel táblázatok kezelésére. Ebben az oktatóanyagban megmutatjuk, hogyan kell használni a Python openpyxl modulját az Excel táblázatok olvasásához és módosításához.
Az openpyxl telepítése
Az openpyxl telepítése előtt telepítenie kell a pip-et. A Pip a Python csomagok telepítésére szolgál. Futtassa a következő parancsot a parancssorban, és ellenőrizze, hogy a pip telepítve van-e.
C: \ Felhasználók \ windows> pip súgóHa visszaadja a pip súgó tartalmát, akkor a pip telepítésre kerül; különben nyissa meg a következő linket, és töltse le a get-pip fájlt.py fájl:
https: // bootstrap.pypa.io / get-pip.py
Most futtassa a következő parancsot a pip telepítéséhez:
C: \ Users \ windows> python get-pip.pyA pip telepítése után a következő paranccsal telepíthető az openpyxl.
C: \ Users \ windows> pip install openpyxlExcel-dokumentum létrehozása
Ebben a szakaszban az openpyxl modult használjuk egy Excel dokumentum létrehozására. Először nyissa meg a parancssort a 'cmd' beírásával a keresősávba; majd írja be
C: \ Users \ windows> pythonExcel-munkafüzet létrehozásához importáljuk az openpyxl modult, majd a 'Workbook ()' módszerrel létrehozunk egy munkafüzetet.
>>> # openpyxl modul importálása>>> openpyxl importálása
>>> # Munkafüzet inicializálása
>>> work_book = openpyxl.Munkafüzet()
>>> # munkafüzet mentése 'példaként.xlsx '
>>> munkafüzet.save ('példa.xlsx ')
A fenti parancsok létrehoznak egy példa nevű Excel dokumentumot.xlsx. Ezután manipuláljuk ezt az Excel dokumentumot.
Táblázatok kezelése egy Excel dokumentumban
Létrehoztunk egy példa nevű Excel dokumentumot.xlsx. Most ennek a dokumentumnak a lapjait fogjuk manipulálni a Python használatával. Az openpyxl modul rendelkezik egy 'create_sheet ()' módszerrel, amellyel új lapot lehet létrehozni. Ehhez a módszerhez két argumentum szükséges: index és cím. Az Index meghatározza a lap elhelyezését bármilyen nem negatív egész szám felhasználásával (beleértve a 0-t is), a cím pedig a lap címe. A work_book objektum összes lapjának listája megjeleníthető a sheetnames lista meghívásával.
>>> # openpyxl importálása>>> openpyxl importálása
>>> # meglévő Excel dokumentum betöltése a munkafüzetobjektumba
>>> munkafüzet = openpyxl.load_workbook ('példa.xlsx ')
>>> # Új lap létrehozása a 0. indexen
>>> munkafüzet.create_sheet (index = 0, cím = 'Első lap')
>>> # Az összes lap beszerzése
>>> munkafüzet.lapnevek
['Első lap', 'Lap']
>>> # Excel dokumentum mentése
>>> munkafüzet.save ('példa.xlsx ')
A fenti kódban létrehoztunk egy Első lap nevű lapot, és a 0. indexbe helyeztük. A korábban a 0. indexnél elhelyezett lap az első indexbe került, amint azt a kimenet mutatja. Most megváltoztatjuk az eredeti lap nevét Lapról Második Lapra.
A title attribútum a lap nevét tartalmazza. Egy lap átnevezéséhez először a következőképpen kell navigálnunk ahhoz a laphoz.
>>> # Aktív lap letöltése az Excel dokumentumból>>> lap = munkafüzet.aktív
>>> # A nyomtatási lap neve
>>> nyomtatás (lap.cím)
Első lap >>> # Navigálás a második lapra (az 1. indexnél)
>>> munkafüzet.aktív = 1
>>> # Aktív lap megszerzése
>>> lap = munkafüzet.aktív
>>> # nyomtatási lap neve
>>> nyomtatás (lap.cím)
Lap >>> # A lap címének módosítása
>>> lap.title = 'Második lap'
>>> # A lap nyomtatási címe
>>> nyomtatás (lap.cím)
Második lap
Hasonlóképpen eltávolíthatunk egy lapot az Excel dokumentumból. Az openpyxl modul az eltávolító () metódust kínálja egy lap eltávolításához. Ez a módszer a lap nevét veszi el argumentumként, majd eltávolítja azt. A második lapot a következőképpen távolíthatjuk el:
>>> # névtelen lap eltávolítása>>> munkafüzet.eltávolítás (munkafüzet ['Második lap'])
>>> # az összes lap megszerzése
>>> munkafüzet.lapnevek
['Első lap']
>>> # Excel dokumentum mentése
>>> munkafüzet.save ('példa.xlsx ')
Adatok hozzáadása a sejtekhez
Eddig megmutattuk, hogyan hozhat létre vagy törölhet lapokat egy Excel-dokumentumban. Most adatokat fogunk hozzáadni a különböző lapok celláihoz. Ebben a példában egyetlen lapunk van Első lap néven, és további két lapot szeretnénk létrehozni.
>>> # openpyxl importálása>>> openpyxl importálása
>>> # munkafüzet betöltése
>>> munkafüzet = openpyxl.load_workbook ('példa.xlsx ')
>>> # Új lap létrehozása az 1. indexnél
>>> munkafüzet.create_sheet (index = 1, cím = 'Második lap')
>>> # új lap létrehozása a 2. indexen
>>> munkafüzet.create_sheet (index = 2, cím = 'Harmadik lap')
>>> # az összes lap megszerzése
>>> munkafüzet.lapnevek
['Első lap', 'Második lap', 'Harmadik lap']
Most három lapunk van, és adatokat fogunk adni a lapok celláihoz.
>>> # Első lap megszerzése>>> sheet_1 = munkafüzet ['Első lap']
>>> # Adatok hozzáadása az első lap „A1” cellájához
>>> sheet_1 ['A1'] = 'Név'
>>> # Második lap megszerzése
>>> sheet_2 = munkafüzet ['Második lap']
>>> # Adatok hozzáadása a második lap „A1” cellájához
>>> sheet_2 ['A1'] = 'ID'
>>> # Harmadik lap megszerzése
>>> sheet_3 = munkafüzet ['harmadik lap']
>>> # Adatok hozzáadása a harmadik lap „A1” cellájához
>>> sheet_3 ['A1'] = 'Minőség'
>>> # Excel munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Excel lapok olvasása
Az openpyxl modul egy cella értékattribútumát használja az adott cella adatainak tárolására. A cellában lévő adatokat a cella értékattribútumának meghívásával olvashatjuk el. Most három lapunk van, és mindegyik lap tartalmaz néhány adatot. Az adatokat az openpyxl következő funkcióinak használatával olvashatjuk el:
>>> # openpyxl importálása>>> openpyxl importálása
>>> # munkafüzet betöltése
>>> munkafüzet = openpyxl.load_workbook ('példa.xlsx ')
>>> # Első lap megszerzése
>>> sheet_1 = munkafüzet ['Első lap']
>>> # Második lap megszerzése
>>> sheet_2 = munkafüzet ['Második lap']
>>> # Harmadik lap megszerzése
>>> sheet_3 = munkafüzet ['harmadik lap']
>>> # adatok nyomtatása az első lap 'A1' cellájából
>>> nyomtatás (munkalap_1 ['A1'].érték)
Név
>>> # adatok nyomtatása a második lap 'A1' cellájából
>>> nyomtatás (lap_2 ['A1'].érték)
ID
>>> # adatok nyomtatása a harmadik lap 'A1' cellájából
>>> nyomtatás (lap_3 ['A1'].érték)
Évfolyamok
Betűtípusok és színek megváltoztatása
Ezután bemutatjuk, hogyan lehet megváltoztatni egy cella betűtípusát a Font () függvény használatával. Először importálja az openpyxl fájlt.stílusok objektum. A Font () metódus argumentumlistát vesz fel, beleértve:
- név (karakterlánc): a betűtípus neve
- méret (int vagy float): a betűméret
- aláhúzás (karakterlánc): az aláhúzás típusa
- szín (karakterlánc): a szöveg hexadecimális színe
- dőlt (bool): a betűtípus dőlt betűs-e
- félkövér (bool): hogy a betűtípus félkövér-e
A stílusok alkalmazásához először létre kell hoznunk egy objektumot, az összes paraméter átadásával a Font () metódusra. Ezután kiválasztjuk a lapot, és a lap belsejében kiválasztjuk azt a cellát, amelyre a stílust szeretnénk alkalmazni. Ezután alkalmazzuk a stílust a kijelölt cellára.
>>> # openpyxl importálása>>> openpyxl importálása
>>> # Font metódus importálása az openpyxl-ből.stílusok
>>> az openpyxl-ből.stílusok importálják a betűtípust
>>> # munkafüzet betöltése
>>> munkafüzet = openpyxl.load_workbook ('példa.xlsx ')
>>> # Stílusobjektum létrehozása
>>> style = Betűtípus (név = 'Consolas', méret = 13, félkövér = True,
… Dőlt = hamis)
>>> # Lap kiválasztása a munkafüzetből
>>> lap_1 = munkafüzet ['Első lap']
>>> # A cellák kiválasztása, amelyekhez stílusokat akarunk hozzáadni
>>> a1 = lap_1 ['A1']
>>> # Stílusok alkalmazása a cellára
>>> a1.font = stílus
>>> # Munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Határok alkalmazása a sejtekre
Szegélyeket alkalmazhatunk az Excel lap celláira az openpyxl Border () és Side () metódusai segítségével.stílusok.határok modul. Különböző függvényeket adhatunk át paraméterként a Border () metódushoz. Az alábbiakban bemutatunk néhány olyan funkciót, amelyeket paraméterként adunk át a Border () metódusnak a határ méreteinek meghatározásához.
- bal: alkalmazzon szegélyt a cella bal oldalán
- jobb: alkalmazzon szegélyt a cella jobb oldalán
- tetejére: alkalmazzon szegélyt a cella tetejére
- alsó: alkalmazzon szegélyt a cella aljára
Ezek a függvények a stílusattribútumokat veszik paraméterként. A stílus attribútum határozza meg a szegély stílusát (pl.g., szilárd, szaggatott). A stílusparaméterek a következő értékek bármelyikével rendelkezhetnek.
- kettős: kétsoros határ
- szaggatott: szaggatott határ
- vékony: vékony szegély
- közepes: közepes határ
- mediumDashDot: szaggatott és szaggatott, közepes súlyú szegély
- vastag: vastag határ
- dashDot: szaggatott és szaggatott szegély
- haj: nagyon vékony szegély
- pontozott: pontozott szegély
Most különböző típusú határokat alkalmazunk a táblázataink különböző celláira. Először kijelöljük a cellákat, majd meghatározzuk a szegélystílusokat, és ezeket a stílusokat alkalmazzuk a különböző cellákra.
>>> # openpyxl importálása>>> openpyxl importálása
>>> # Border és Side osztályok importálása
>>> az openpyxl-ből.stílusok.határok import Border, Side
>>> # munkafüzet betöltése
>>> work_book = openpyxl.load_workbook ('példa.xlsx ')
>>> # Lap kiválasztása
>>> sheet_1 = munkafüzet ['Első lap']
>>> # Különböző cellák kiválasztása a munkalapból
>>> cell_1 = munkalap_1 ['A1']
>>> cell_2 = munkalap_1 ['B2']
>>> cella_3 = lap_1 ['C3']
>>> # Különböző szegélystílusok meghatározása
>>> style_1 = Border (alsó = Side (style = 'pontozott'))
>>> style_2 = Border (jobb = Side (style = 'vékony'))
>>> style_3 = Border (felső = Side (style = 'dashDot'))
>>> # szegélystílusok alkalmazása a cellákra
>>> cell_1.határ = stílus_1
>>> cella_2.határ = stílus_2
>>> cell_3.határ = stílus_3
>>> # Munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Sor- és oszlopméretek beállítása
Az Excel-dokumentumok sormagassága és oszlopszélessége a Python segítségével is beállítható. Az openpyxl modul két beépített módszerrel rendelkezik, amelyek felhasználhatók ezeknek a műveleteknek a végrehajtására. Először kiválasztjuk azt a lapot, amelynek az oszlopszélességét vagy a magasságát meg akarjuk változtatni. Ezután alkalmazunk egy módszert az adott sorra vagy oszlopra.
>>> # openpyxl importálása>>> openpyxl importálása
>>> # munkafüzet betöltése
>>> munkafüzet = openpyxl.load_workbook ('példa.xlsx ')
>>> # lap kiválasztása
>>> lap_1 = munkafüzet ['Első lap']
>>> # az első sor magasságának megváltoztatása
>>> lap_1.sor_méretek [1].magasság = 50
>>> # Munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Hasonlóképpen megváltoztathatjuk az oszlop szélességét a következő kód használatával
>>> # lap kiválasztása az excel munkafüzetből>>> sheet_2 = munkafüzet ['Második lap']
>>> # az oszlop szélességének megváltoztatása
>>> lap_2.oszlop_méretek ['A'].szélesség = 50
>>> # Munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
A fenti kód megváltoztatja az első sor magasságát 50 pontra, az A oszlop szélességét pedig 50 pontra.
Sejtek egyesülése és feloldása
Amikor az Excel táblázatokkal dolgozunk, gyakran össze kell egyesítenünk és feloldanunk a cellákat. A Python celláinak egyesítéséhez az openpyxl alapú egyszerű függvény használható. Az openpyxl modul a merge_cells () metódust kínálja, amellyel cellákat egyesíthet az Excel-ben. Az új cella felveszi a bal felső cella nevét. Például, ha össze akarjuk egyesíteni a cellákat az A1 cellából a B2 cellába, akkor az újonnan létrehozott cellára A1 néven hivatkozunk. A cellák egyesítéséhez az openpyxl használatával először kiválasztjuk a lapot, majd a merge_cells () metódust alkalmazzuk a munkalapra.
>>> # openpyxl modul importálása>>> openpyxl importálása
>>> # munkafüzet betöltése
>>> work_book = openpyxl.load_workbook ('példa.xlsx ')
>>> # az első munkalap kiválasztása az excel munkafüzetből
>>> sheet_1 = munkafüzet ['Első lap']
>>> # cellák egyesítése A1-től B2-ig az 1. munkalapon
>>> lap_1.merge_cells ('A1: B2')
>>> # munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Hasonlóképpen, az unmerge_cells () metódus használható az Excel-táblázat celláinak feloldására. A következő kód használható a cellák egyesítéséhez:
>>> # lap kiválasztása a munkafüzetből>>> sheet_1 = munkafüzet ['Első lap']
>>> # el nem merülő cella A1-től B2-ig
>>> lap_1.unmerge_cells ('A1: B2')
>>> # munkafüzet mentése
>>> munkafüzet.save ('példa.xlsx ')
Következtetés
Az Excel-táblázatokat általában adatkezelésre használják. Az ilyen feladatok azonban monotonak lehetnek. Ezért ilyen esetekben programozással automatizálható a táblázatkezelés.
Ebben a cikkben megvitattuk a Python openpyxl moduljának néhány hasznos funkcióját. Megmutattuk, hogyan hozhat létre, olvashat, távolíthat el és módosíthat Excel táblázatokat, hogyan módosíthatja a stílust, hogyan alkalmazhatja a cellák betűtípusát, szegélyeit és méreteit, valamint hogyan egyesítheti és egyesítheti a cellákat. Ezeknek a függvényeknek az alkalmazásával számos táblázatkezelési feladatot automatizálhat a Python használatával.