Heim > Artikel > Backend-Entwicklung > 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.
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
>>> ws = wb.activeNeues 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 positionRufen 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#🎜 🎜##🎜 🎜#
>>> 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')
>>> c = ws['A4']
>>> 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]
>>> 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>
>>> 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!