Veľmi príjemná knižnica na prácu s excel (xlsx) súbormi.
V prvom rade je potrebné načítať pracovný zošiť:
wb = load_workbook(“demo.xlsx”)
Musíme špecifikovať, do ktorého Listu budeme údaje zadávať. Keďže máme len jeden hárok, stačí použiť kľúčové slovo „active“ a na zadanie údajov sa použije aktuálny aktívny hárok.
list = wb.active
# poprípade ak chceme priamo vybrať hárok podľa názvu
list = wb["Názov hárku"]
Existujú 2 spôsoby, ako zadať údaje do súboru Excel. Sú to nasledovné:
- Priamo použite kombináciu stĺpcových riadkov. Príklad [A1], kde A je stĺpec a 1 je riadok.
- Použite čísla riadkov a stĺpcov. Príklad riadok=4, stĺpec=2
sheet['A1'] = 'Pomocník pre testovanie softvéru'
sheet.cell(row=4, column=2).value = 'Výukový program Openpyxl'
Po zadaní hodnôt nezabudnite súbor uložiť.
wb.save("demo.xlsx")
Ešte prikladám pár šikovných metód pre prácu s xlsx:
# zmena názvu hárku
sheet = wb.active
sheet.title = "Nový názov hárku"
# pridanie hárku (index je pozícia kde sa vloží, title názov hárku
wb.create_sheet(index = 1 , title = "názov hárku")
# vymazanie hárka
sheetDelete = wb["Sheet2"]
wb.remove(sheetDelete)
# čítanie a vypísanie údajov z hárka
from openpyxl import load_workbook
wb = load_workbook("demo.xlsx")
sheet = wb.active
dataAtA1 = sheet['A1']
dataAtA2 = sheet.cell(row=2, column=1)
print("Data at A1:", dataAtA1.value)
print("Data at A2:", dataAtA2.value)
# pridanie viacerých hodnôt do hárku
from openpyxl import load_workbook
wb = load_workbook("demo.xlsx")
#Mention the sheet where the data can be entered,
sheet = wb["Day2 Result 27.07.2020"]
# Assign multiple values to data
data =[('Emp Id', 'Emp Name', 'Designation'),
(1, 'XYZ', 'Manager'),
(2, 'ABC', 'Consultant')]
#Append all rows
for i in data:
sheet.append(i)
wb.save("demo.xlsx")
# jednoduché funkcie na čítanie a zapisovanie hodnôt
import openpyxl
def readData(file,sheetname,rownum,colnum):
workbook = openpyxl.load_workbook(file)
sheet = workbook[sheetname]
inputvalue =sheet.cell(row=rownum, column=colnum).value
return inputvalue
def writeData(file,sheetname,rownum, colnum,data):
workbook = openpyxl.load_workbook(file)
sheet = workbook[sheetname]
sheet.cell(row=rownum, column=colnum).value= data
workbook.save(file)