Heim >Backend-Entwicklung >Python-Tutorial >Python-Operationen für Excel-Tabellen
So verwenden Sie Python zum Erstellen von Excel-Tabellen: Öffnen Sie zunächst ein Excel-Dokument mit dem Modul openpyxl, geben Sie die Zelleninformationen der Zeilen und Spalten an und rufen Sie dann [wb.sheetnames] und [wb.active] auf Rufen Sie die Arbeitsmappendetails ab. Verwenden Sie abschließend das Lesen des Index, um das Cell-Objekt abzurufen.
1 Python- und Excel-Tabelle
Excel ist eine beliebte und leistungsstarke Tabellenkalkulationsanwendung in der Windows-Umgebung. Das openpyxl-Modul ermöglicht Python-Programmen das Lesen und Ändern von Excel-Tabellendateien
1) Grundlegende Definition von Excel-Dokumenten
- Arbeitsmappe (Arbeitsmappe)
- Arbeitsblatt (Blatt)
- aktives Blatt (aktives Blatt)
- Zeile: 1,2,3,4,5,6……..
- Spalte: A,B,C,D……..
- Zelle (Zelle): B1, C1
2) Es gibt viele Module für Python zum Betrieb von Excel-Tabellen
, aber das Openpyxl-Modul muss installiert werden
pip install openpyxl
Verwenden Sie den obigen Befehl, um das Openpyxl-Modul zu installieren
Dies ist die für den Vorgang ausgewählte Tabelle
1> Öffnen Sie ein Excel-Dokument
import openpyxl# 1. 打开一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象wb = openpyxl.load_workbook('Book.xlsx') print(wb, type(wb))# 获取当前工作薄里所有的工作表,和正在使用的表;print(wb.sheetnames) print(wb.active)
Die Ausgabe ist ein Objekt
2> Wählen Sie das zu bearbeitende Arbeitsblatt aus
3> Geben Sie die Zellinformationen der angegebenen Zeile und Spalte an
# 2.选择要操作的工作表,返回工作表对象sheet=wb['Sheet1'] #获取工作表的名称print(sheet.title)
4> Anzahl der Zeilen und Spalten im Arbeitsblatt
# 3. 返回指定行指定列的单元格信息print(sheet.cell(row=1, column=2).value) cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)
5> Auf alle Informationen der Zelle zugreifen
# 4. 获取工作表中行和列的最大值print(sheet.max_column)print(sheet.max_row) sheet.title = '学生信息'print(sheet.title)
6> Geänderte Informationen speichern
# 5. 访问单元格的所有信息print(sheet.rows) # 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问. # 循环遍历每一行for row in sheet.rows: # 循环遍历每一个单元格for cell in row: # 获取单元格的内容 print(cell.value, end=',') print()
Daher lässt sich die Bedienung von Excel-Tabellen im Detail wie folgt zusammenfassen:
1. Importieren Sie das openpyxl-Modul.
2. Rufen Sie die Funktion openpyxl.load_workbook() auf.
3. Holen Sie sich das Workbook-Objekt.
4. Rufen Sie wb.sheetnames und wb.active auf, um Arbeitsmappendetails zu erhalten.
5. Holen Sie sich das Worksheet-Objekt.
6. Verwenden Sie die cell()-Methode des Index oder Arbeitsblatts mit den Schlüsselwortparametern Zeile und Spalte.
7. Holen Sie sich das Cell-Objekt.
8. Lesen Sie das Wertattribut des Cell-Objekts
2 Einfaches Excel-Beispiel - Definieren Sie eine Funktion, readwb(wbname, sheetname=None)
- Wenn der Benutzer dies angibt Blattname: Öffnen Sie das vom Benutzer angegebene Arbeitsblatt.
– Sortieren Sie es nach dem Preis des Produkts (von klein nach groß) und speichern Sie es in der Datei Menge
- Alle Informationen und speichern Sie sie in der Datenbank
#6.保存修改信息wb.save(filename='Boom.xlsx')
* 3. Ändern Sie den Inhalt der Tabelle* Jede Zeile stellt einen separaten Verkauf dar. Die Spalten enthalten die Art des verkauften Produkts (A), den Preis pro Pfund des Produkts
(B), die Anzahl der verkauften Pfund (C) und den Gesamtumsatz aus dem Verkauf. Die Spalte GESAMT ist als Excel-Formel eingerichtet, die die Kosten pro Pfund mit den verkauften Pfund multipliziert
und das Ergebnis auf den nächsten Cent rundet. Wenn sich mit dieser Formel Spalte B oder C ändert, werden die Zellen in der Spalte GESAMT automatisch aktualisiert
Sellerie 1,19
Knoblauch 3,07
Zitrone 1,27
现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开情况:
1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件
import osimport openpyxldef readwb(wbname, sheetname=None): # 打开工作薄 wb = openpyxl.load_workbook(wbname) # 获取要操作的工作表 if not sheetname: sheet = wb.active else: sheet = wb[sheetname] # 获取商品信息保存到列表中 all_info = [] for row in sheet.rows: child = [cell.value for cell in row] all_info.append(child) if child[0] == 'Celery': child[1] = 1.19 if child[0] == 'Garlic': child[1] = 3.07 if child[0] == 'Lemon': child[1] = 1.27 return all_infodef save_to_excel(data, wbname, sheetname='sheet1'): """ 将信息保存到excel表中; """ print("写入Excel[%s]中......." % (wbname)) # 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象 wb = openpyxl.Workbook() # 修改当前工作表的名称 sheet = wb.active # 修改工作表的名称 sheet.title = sheetname for row, item in enumerate(data): # 0 [' BOOK', 50, 3] for column, cellValue in enumerate(item): # 0 ' BOOK' sheet.cell(row=row + 1, column=column + 1, value=cellValue) # ** 往单元格写入内容 # sheet.cell['B1'].value = "value" # sheet.cell(row=1, column=2, value="value") # 保存写入的信息 wb.save(filename=wbname) print("写入成功!") data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx') save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")
表示写入新数据成功
这是更改后的保存的新表格
Das obige ist der detaillierte Inhalt vonPython-Operationen für Excel-Tabellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!