Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Büroautomatisierung, beherrschen Sie den OpenPyXL-Betrieb in fünf Minuten!

Python-Büroautomatisierung, beherrschen Sie den OpenPyXL-Betrieb in fünf Minuten!

WBOY
WBOYnach vorne
2023-04-17 11:49:02863Durchsuche

Python-Büroautomatisierung, beherrschen Sie den OpenPyXL-Betrieb in fünf Minuten!

Heute werde ich mit Ihnen einen Artikel über die Verwendung von openpyxl zur Bedienung von Excel teilen.

Müssen Sie verschiedene Daten in Excel importieren? Möchten Sie mehrere Excel-Dateien zusammenführen? Derzeit gibt es viele Bibliotheken für Python zur Verarbeitung von Excel-Dateien, und openpyxl ist eine davon mit besseren Funktionen und Leistung. Als nächstes werde ich Ihnen verschiedene Excel-Operationen vorstellen.

1. Excel-Datei öffnen

Eine neue Excel-Datei erstellen

>>> from openpyxl import Workbook
>>> wb = Workbook()

Eine vorhandene Excel-Datei öffnen#🎜 🎜 #

>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')

Verwenden Sie beim Öffnen großer Dateien je nach Bedarf den Lese- oder Schreibmodus, um den Speicherverbrauch zu reduzieren.

wb = load_workbook(filename='large_file.xlsx', read_only=True)
wb = Workbook(write_only=True)

2. Arbeitsblätter abrufen und erstellen


Aktuell aktives Arbeitsblatt abrufen:


>>> ws = wb.active

Neues Arbeitsblatt erstellen:

>>> ws1 = wb.create_sheet("Mysheet") # insert at the end (default)
 # or
 >>> ws2 = wb.create_sheet("Mysheet", 0) # insert at first position
 # or
 >>> ws3 = wb.create_sheet("Mysheet", -1) # insert at the penultimate position

Rufen Sie das Arbeitsblatt mit dem Arbeitsblattnamen ab:

>>> ws3 = wb["New Title"]

Rufen Sie alle Arbeitsblattnamen ab:

>>> print(wb.sheetnames)
 ['Sheet2', 'New Title', 'Sheet1']
使用for循环遍历所有的工作表:
 >>> for sheet in wb:
 ... print(sheet.title)

3. Speichern#🎜 🎜##🎜 🎜#

Speichern im Stream zur Verwendung im Web:
>>> from tempfile import NamedTemporaryFile
 >>> from openpyxl import Workbook
 >>> wb = Workbook()
 >>> with NamedTemporaryFile() as tmp:
 wb.save(tmp.name)
 tmp.seek(0)
 stream = tmp.read()
保存到文件:
 >>> wb = Workbook()
 >>> wb.save('balances.xlsx')
保存为模板:
 >>> wb = load_workbook('document.xlsx')
 >>> wb.template = True
 >>> wb.save('document_template.xltx')

4, Zelle

Zellenposition als Arbeitsblatt Der Schlüssel wird direkt gelesen: # ?? Format:
>>> c = ws['A4']

Formel verwenden:

>>> ws['A4'] = 4
 >>> c.value = 'hello, world'

Beim Zusammenführen von Zellen werden alle Zellen außer der Zelle oben links aus dem Arbeitsblatt gelöscht:

>>> cell_range = ws['A1':'C2']
#🎜🎜 #5, Zeilen und Spalten


Sie können den Bereich von Zeilen, Spalten oder Zeilen einzeln angeben:

>>> # set date using a Python datetime
 >>> ws['A1'] = datetime.datetime(2010, 7, 21)
 >>>
>>> ws['A1'].number_format
 'yyyy-mm-dd h:mm:ss'

kann verwendet werden Das Worksheet.iter_rows() Methode durchläuft die Zeilen:

>>> # add a simple formula
 >>> ws["A1"] = "=SUM(1, 1)"

Die gleiche Worksheet.iter_cols()-Methode durchläuft die Spalten:

>>> ws.merge_cells('A2:D2')
 >>> ws.unmerge_cells('A2:D2')
 >>>
>>> # or equivalently
 >>> ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
 >>> ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)

Um alle Zeilen oder Spalten der Datei zu durchqueren, können Sie Worksheet verwenden .rows-Attribut:

>>> colC = ws['C']
 >>> col_range = ws['C:D']
 >>> row10 = ws[10]
 >>> row_range = ws[5:10]

oder Worksheet.columns-Attribut:
>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
 ...for cell in row:
 ...print(cell)
 <Cell Sheet1.A1>
 <Cell Sheet1.B1>
 <Cell Sheet1.C1>
 <Cell Sheet1.A2>
 <Cell Sheet1.B2>
 <Cell Sheet1.C2>

Verwenden Sie Worksheet.append() oder verwenden Sie iterativ Worksheet.cell(), um eine neue Datenzeile hinzuzufügen: #🎜🎜 #
>>> for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
 ... for cell in col:
 ... print(cell)
 <Cell Sheet1.A1>
 <Cell Sheet1.A2>
 <Cell Sheet1.B1>
 <Cell Sheet1.B2>
 <Cell Sheet1.C1>
 <Cell Sheet1.C2>

Der Einfügevorgang ist mühsamer. Sie können Worksheet.insert_rows() verwenden, um eine oder mehrere Zeilen einzufügen:

>>> ws = wb.active
 >>> ws['C9'] = 'hello world'
 >>> tuple(ws.rows)
 ((, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ))

6. Nur die Werte lesen

Verwenden Sie die Worksheet.values-Eigenschaft um das Arbeitsblatt zu durchlaufen Alle Zeilen, aber nur der Zellenwert wird zurückgegeben:

>>> tuple(ws.columns)
 ((<Cell Sheet.A1>,
 <Cell Sheet.A2>,
 <Cell Sheet.A3>,
 <Cell Sheet.A4>,
 <Cell Sheet.A5>,
 <Cell Sheet.A6>,
 ...
 <Cell Sheet.B7>,
 <Cell Sheet.B8>,
 <Cell Sheet.B9>),
 (<Cell Sheet.C1>,
 <Cell Sheet.C2>,
 <Cell Sheet.C3>,
 <Cell Sheet.C4>,
 <Cell Sheet.C5>,
 <Cell Sheet.C6>,
 <Cell Sheet.C7>,
 <Cell Sheet.C8>,
 <Cell Sheet.C9>))

Worksheet.iter_rows() und Worksheet.iter_cols() können den Parameter „values_only“ so festlegen, dass nur der Zellenwert zurückgegeben wird: #🎜🎜 #

>>> for row in range(1, 40):
 ... ws1.append(range(600))
 >>> for row in range(10, 20):
 ... for col in range(27, 54):
 ... _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))

Das obige ist der detaillierte Inhalt vonPython-Büroautomatisierung, beherrschen Sie den OpenPyXL-Betrieb in fünf Minuten!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen