Microsoft Excel je tabulkový software, který se používá k ukládání a správě tabulkových dat. S Excelem lze dále provádět výpočty pomocí vzorců na data a lze vytvářet vizualizace dat.Mnoho úkolů prováděných v tabulkách, například matematické operace, lze automatizovat pomocí programování a mnoho programovacích jazyků má moduly pro manipulaci s tabulkami aplikace Excel. V tomto tutoriálu vám ukážeme, jak používat Pythonův modul openpyxl ke čtení a úpravám excelových tabulek.
Instalace openpyxl
Před instalací openpyxl musíte nainstalovat pip. Pip se používá k instalaci balíčků Pythonu. Spusťte následující příkaz na příkazovém řádku a zkontrolujte, zda je pip nainstalován.
C: \ Users \ windows> pip helpPokud je vrácen obsah nápovědy pip, je pip nainstalován; v opačném případě přejděte na následující odkaz a stáhněte si get-pip.py soubor:
https: // bootstrap.pypa.io / get-pip.py
Nyní spusťte následující příkaz k instalaci pip:
C: \ Users \ windows> python get-pip.pyPo instalaci pipu lze použít následující příkaz k instalaci openpyxl.
C: \ Users \ windows> pip install openpyxlVytvoření dokumentu aplikace Excel
V této části použijeme modul openpyxl k vytvoření dokumentu aplikace Excel. Nejprve otevřete příkazový řádek zadáním „cmd“ do vyhledávacího pole; poté zadejte
C: \ Users \ windows> pythonChcete-li vytvořit sešit aplikace Excel, naimportujeme modul openpyxl a poté k vytvoření sešitu použijeme metodu 'Workbook ()'.
>>> # import modulu openpyxl>>> import openpyxl
>>> # Inicializace sešitu
>>> work_book = openpyxl.Pracovní sešit()
>>> # uložení sešitu jako příklad.xlsx '
>>> sešit.uložit ('příklad.xlsx ')
Výše uvedené příkazy vytvářejí dokument aplikace Excel s názvem příklad.xlsx. Dále budeme manipulovat s tímto dokumentem aplikace Excel.
Manipulace s listy v dokumentu Excel
Vytvořili jsme dokument aplikace Excel s názvem příklad.xlsx. Nyní budeme manipulovat s listy tohoto dokumentu pomocí Pythonu. Modul openpyxl má metodu 'create_sheet ()', kterou lze použít k vytvoření nového listu. Tato metoda má dva argumenty: index a název. Index definuje umístění listu pomocí libovolného nezáporného celého čísla (včetně 0) a název je název listu. Seznam všech listů v objektu sešitu lze zobrazit voláním seznamu názvů listů.
>>> # import openpyxl>>> import openpyxl
>>> # načítání existujícího dokumentu Excel do objektu work_book
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # Vytvoření nového listu na 0. indexu
>>> sešit.create_sheet (index = 0, title = 'První list')
>>> # Získání všech listů
>>> sešit.názvy listů
['První list', 'List']
>>> # Uložení dokumentu aplikace Excel
>>> sešit.uložit ('příklad.xlsx ')
Ve výše uvedeném kódu jsme vytvořili list s názvem První list a umístili jsme jej na 0. index. List dříve umístěný na 0. indexu byl přesunut do 1. indexu, jak je znázorněno na výstupu. Nyní změníme název původního listu z listu na druhý list.
Atribut title obsahuje název listu. Chcete-li přejmenovat list, musíme nejprve přejít na tento list následujícím způsobem.
>>> # Získání aktivního listu z dokumentu aplikace Excel>>> sheet = work_book.aktivní
>>> # Název tiskového listu
>>> tisk (list.titul)
První list >>> # Přechod na druhý list (v indexu 1)
>>> sešit.aktivní = 1
>>> # Získání aktivního listu
>>> sheet = work_book.aktivní
>>> # tisk listu Název
>>> tisk (list.titul)
List >>> # Změna názvu listu
>>> list.title = 'Druhý list'
>>> # Název tiskového listu
>>> tisk (list.titul)
Druhý list
Podobně můžeme odebrat list z dokumentu aplikace Excel. Modul openpyxl nabízí metodu remove () pro odstranění listu. Tato metoda přebírá název listu, který má být odebrán, jako argument a poté tento list odebere. Druhý list můžeme odebrat následujícím způsobem:
>>> # odebrání listu podle jména>>> sešit.remove (work_book ['Second Sheet'])
>>> # získání všech listů
>>> sešit.názvy listů
['První list']
>>> # ukládání dokumentu aplikace Excel
>>> sešit.uložit ('příklad.xlsx ')
Přidávání dat do buněk
Zatím jsme vám ukázali, jak vytvořit nebo odstranit listy v dokumentu aplikace Excel. Nyní přidáme data do buněk různých listů. V tomto příkladu máme v dokumentu jeden list s názvem První list a chceme vytvořit další dva listy.
>>> # import openpyxl>>> import openpyxl
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # Vytvoření nového listu na 1. indexu
>>> sešit.create_sheet (index = 1, title = 'Druhý list')
>>> # vytvoření nového listu na 2. indexu
>>> sešit.create_sheet (index = 2, title = 'Třetí list')
>>> # získání všech listů
>>> sešit.názvy listů
['První list', 'Druhý list', 'Třetí list']
Nyní máme tři listy a do buněk těchto listů přidáme data.
>>> # Získání prvního listu>>> sheet_1 = work_book ['First Sheet']
>>> # Přidání dat do buňky „A1“ prvního listu
>>> sheet_1 ['A1'] = 'Jméno'
>>> # Získání druhého listu
>>> sheet_2 = work_book ['Second Sheet']
>>> # Přidání dat do buňky „A1“ druhého listu
>>> sheet_2 ['A1'] = 'ID'
>>> # Získání třetího listu
>>> sheet_3 = work_book ['Third Sheet']
>>> # Přidání dat do buňky „A1“ třetího listu
>>> sheet_3 ['A1'] = 'Hodnocení'
>>> # Ukládání sešitu aplikace Excel
>>> sešit.uložit ('příklad.xlsx ')
Čtení listů aplikace Excel
Modul openpyxl používá k ukládání dat této buňky atribut hodnoty buňky. Můžeme číst data v buňce voláním atributu hodnoty buňky. Nyní máme tři listy a každý list obsahuje některá data. Data můžeme číst pomocí následujících funkcí v openpyxl:
>>> # import openpyxl>>> import openpyxl
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # Získání prvního listu
>>> sheet_1 = work_book ['First Sheet']
>>> # Získání druhého listu
>>> sheet_2 = work_book ['Second Sheet']
>>> # Získání třetího listu
>>> sheet_3 = work_book ['Third Sheet']
>>> # tisk dat z buňky 'A1' prvního listu
>>> tisk (list_1 ['A1']).hodnota)
název
>>> # tisk dat z buňky „A1“ druhého listu
>>> tisk (list_2 ['A1']).hodnota)
ID
>>> # tisk dat z buňky „A1“ třetího listu
>>> tisk (sheet_3 ['A1']).hodnota)
Známky
Změna písma a barev
Dále vám ukážeme, jak změnit písmo buňky pomocí funkce Font (). Nejprve importujte openpyxl.objekt stylů. Metoda Font () přebírá seznam argumentů, včetně:
- jméno (řetězec): název písma
- velikost (int nebo float): velikost písma
- podtržení (řetězec): typ podtržení
- barva (řetězec): hexadecimální barva textu
- kurzíva (bool): zda je písmo kurzívou
- tučně (bool): zda je písmo tučně
Chcete-li použít styly, musíme nejprve vytvořit objekt předáním všech parametrů metodě Font (). Poté vybereme list a uvnitř listu vybereme buňku, na kterou chceme styl použít. Poté použijeme styl na vybranou buňku.
>>> # import openpyxl>>> import openpyxl
>>> # import metody písma z openpyxl.styly
>>> z openpyxl.styly import písma
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # Vytváření objektu stylu
>>> style = Font (name = 'Consolas', size = 13, bold = True,
… Italic = False)
>>> # Výběr listu ze sešitu
>>> sheet_1 = work_book ['First Sheet']
>>> # Výběr buňky, do které chceme přidat styly
>>> a1 = sheet_1 ['A1']
>>> # Aplikování stylů na buňku
>>> a1.font = styl
>>> # Ukládání sešitu
>>> sešit.uložit ('příklad.xlsx ')
Aplikování hranic na buňky
Můžeme aplikovat ohraničení na buňky v listu aplikace Excel pomocí metod Border () a Side () openpyxl.styly.modul ohraničení. Můžeme předat různé funkce jako parametry metodě Border (). Následuje několik funkcí, které jsou předány jako parametry metodě Border () k definování rozměrů ohraničení.
- vlevo, odjet: použít ohraničení na levé straně buňky
- že jo: aplikovat ohraničení na pravou stranu buňky
- horní: použití ohraničení na horní část buňky
- dno: použití ohraničení na spodní část buňky
Tyto funkce berou atributy stylu jako parametry. Atribut style definuje styl ohraničení (např.G., plná, přerušovaná). Parametry stylu mohou mít kteroukoli z následujících hodnot.
- dvojnásobek: dvojité ohraničení čáry
- přerušovaný: přerušovaný okraj
- tenký: tenký okraj
- střední: střední hranice
- mediumDashDot: přerušovaný a tečkovaný okraj střední hmotnosti
- tlustý: silný okraj
- dashDot: přerušovaný a tečkovaný okraj
- vlasy: velmi tenký okraj
- tečkovaný: tečkovaný okraj
Nyní použijeme různé typy ohraničení na různé buňky našich tabulek. Nejprve vybereme buňky a poté definujeme styly ohraničení a použijeme tyto styly na různé buňky.
>>> # import openpyxl>>> import openpyxl
>>> # import hraničních a bočních tříd
>>> z openpyxl.styly.border import Border, Side
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # Výběr listu
>>> sheet_1 = work_book ['First Sheet']
>>> # Výběr různých buněk z listu
>>> cell_1 = sheet_1 ['A1']
>>> cell_2 = sheet_1 ['B2']
>>> cell_3 = sheet_1 ['C3']
>>> # Definování různých stylů ohraničení
>>> style_1 = Border (bottom = Side (style = 'dotted')))
>>> style_2 = Border (right = Side (style = 'thin')))
>>> style_3 = Border (top = Side (style = 'dashDot'))
>>> # použití stylů ohraničení na buňky
>>> cell_1.border = style_1
>>> cell_2.border = style_2
>>> cell_3.border = style_3
>>> # Ukládání sešitu
>>> sešit.uložit ('příklad.xlsx ')
Úprava rozměrů řádků a sloupců
Výšku řádku a šířku sloupce dokumentu aplikace Excel lze také upravit pomocí Pythonu. Modul openpyxl má dvě vestavěné metody, které lze použít k provedení těchto akcí. Nejprve vybereme list, jehož šířku nebo výšku řádku chceme změnit. Poté použijeme metodu na konkrétní řádek nebo sloupec.
>>> # import openpyxl>>> import openpyxl
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # výběr listu
>>> sheet_1 = work_book ['First Sheet']
>>> # změna výšky prvního řádku
>>> sheet_1.row_dimensions [1].výška = 50
>>> # Ukládání sešitu
>>> sešit.uložit ('příklad.xlsx ')
Podobně můžeme změnit šířku sloupce pomocí následujícího kódu
>>> # výběr listu ze sešitu aplikace Excel>>> sheet_2 = work_book ['Second Sheet']
>>> # změna šířky sloupce
>>> list_2.column_dimensions ['A'].šířka = 50
>>> # Ukládání sešitu
>>> sešit.uložit ('příklad.xlsx ')
Výše uvedený kód změní výšku prvního řádku na 50 bodů a šířku sloupce A na 50 bodů.
Sloučení a sloučení buněk
Při práci s tabulkami aplikace Excel často potřebujeme sloučit a sloučit buňky. Ke sloučení buněk v Pythonu lze použít jednoduchou funkci založenou na openpyxl. Modul openpyxl nabízí metodu merge_cells (), kterou lze použít ke sloučení buněk v aplikaci Excel. Nová buňka přebírá název buňky vlevo nahoře. Například pokud chceme sloučit buňky z buňky A1 do buňky B2, bude nově vytvořená buňka označována jako A1. Chcete-li sloučit buňky pomocí openpyxl, nejprve vybereme list a poté na list použijeme metodu merge_cells ().
>>> # import modulu openpyxl>>> import openpyxl
>>> # načítání sešitu
>>> work_book = openpyxl.load_workbook ('příklad.xlsx ')
>>> # výběr prvního listu ze sešitu aplikace Excel
>>> sheet_1 = work_book ['First Sheet']
>>> # sloučení buněk z A1 do B2 v listu 1
>>> sheet_1.merge_cells ('A1: B2')
>>> # ukládání sešitu
>>> sešit.uložit ('příklad.xlsx ')
Podobně lze metodu unmerge_cells () použít k sloučení buněk v tabulce aplikace Excel. K rozdělení buněk lze použít následující kód:
>>> # výběr listu ze sešitu>>> sheet_1 = work_book ['First Sheet']
>>> # oddělování buněk od A1 do B2
>>> sheet_1.unmerge_cells ('A1: B2')
>>> # uložení sešitu
>>> sešit.uložit ('příklad.xlsx ')
Závěr
Pro manipulaci s daty se běžně používají tabulky aplikace Excel. Tyto úkoly však mohou být monotónní. Proto v takových případech lze programování použít k automatizaci manipulace s tabulkami.
V tomto článku jsme diskutovali o některých užitečných funkcích pythonského modulu openpyxl. Ukázali jsme vám, jak vytvářet, číst, odstraňovat a upravovat tabulky aplikace Excel, jak měnit styl, používat písmo, ohraničení a rozměry buněk a jak sloučit a sloučit buňky. Použitím těchto funkcí můžete automatizovat mnoho úloh manipulace s tabulkami pomocí Pythonu.