Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2023-04-17 11:49:02
nach vorne
889 Leute haben es durchsucht

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()
Nach dem Login kopieren

Eine vorhandene Excel-Datei öffnen#🎜 🎜 #

>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
Nach dem Login kopieren

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)
Nach dem Login kopieren

2. Arbeitsblätter abrufen und erstellen


Aktuell aktives Arbeitsblatt abrufen:


>>> ws = wb.active
Nach dem Login kopieren

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
Nach dem Login kopieren

Rufen Sie das Arbeitsblatt mit dem Arbeitsblattnamen ab:

>>> ws3 = wb["New Title"]
Nach dem Login kopieren

Rufen Sie alle Arbeitsblattnamen ab:

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

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')
Nach dem Login kopieren

4, Zelle

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

Formel verwenden:

>>> ws['A4'] = 4
 >>> c.value = 'hello, world'
Nach dem Login kopieren

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

>>> cell_range = ws['A1':'C2']
Nach dem Login kopieren
#🎜🎜 #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'
Nach dem Login kopieren

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

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

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)
Nach dem Login kopieren

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]
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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)
 ((, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ),
 (, , ))
Nach dem Login kopieren

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>))
Nach dem Login kopieren

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)))
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage