Heim > Artikel > Backend-Entwicklung > Wie geht Python mit Tabellen um?
Wie geht Python mit Tabellen um?
Wie Python mit Tabellen umgeht:
Python verwendet hauptsächlich die beiden Bibliotheken xlrd und xlwt, um Excel zu betreiben, dh xlrd dient zum Lesen von Excel und xlwt dient zum Schreiben einer Excel-Bibliothek. Es kann von https://pypi.python.org/pypi heruntergeladen werden. Die folgenden Aufzeichnungen umfassen jeweils das Lesen und Schreiben von Python in Excel.
Excel in Python schreiben – xlwt
Die Schwierigkeit beim Schreiben von Excel in Python liegt nicht in der Erstellung einer Arbeitsmappe selbst, sondern in den ausgefüllten Daten, aber das liegt nicht im Rahmen. Es gibt auch heikle Probleme beim Schreiben von Excel. Beispielsweise ist das Schreiben zusammengeführter Zellen schwieriger und es gibt unterschiedliche Schreibstile.
Der detaillierte Code lautet wie folgt:
import xlwt #设置表格样式 def set_style(name,height,bold=False): style = xlwt.XFStyle() font = xlwt.Font() font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style #写Excel def write_excel(): f = xlwt.Workbook() sheet1 = f.add_sheet('学生',cell_overwrite_ok=True) row0 = ["姓名","年龄","出生日期","爱好"] colum0 = ["张三","李四","恋习Python","小明","小红","无名"] sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True)) #写第一列 for i in range(0,len(colum0)): sheet1.write(i+1,0,colum0[i],set_style('Times New Roman',220,True)) sheet1.write(1,3,'2006/12/12') sheet1.write_merge(6,6,1,3,'未知')#合并行单元格 sheet1.write_merge(1,2,3,3,'打游戏')#合并列单元格 sheet1.write_merge(4,5,3,3,'打篮球') f.save('test.xls') if __name__ == '__main__': write_excel()
Ergebnisbild:
Hier wird die Verwendung von write_merge() kurz erklärt, Wie oben: sheet1.write_merge(1,2,3,3,'playing games'), das heißt, die 2. und 3. Spalte werden in vier Spalten zusammengeführt. Der zusammengeführte Zelleninhalt ist „total“ und der Stil ist festgelegt. Unter diesen werden alle Parameter beginnend bei 0 berechnet.
Python liest Excel - xlrd
Python liest Excel-Tabellen. Im Vergleich zu xlwt bietet xlrd mehr Schnittstellen, aber der Prozess weist auch einige problematische Probleme auf, z. B. das Lesen von Datumsangaben und das Lesen zusammengeführter Zellinhalte.
Werfen wir einen Blick auf die Grundoperationen:
Die Gesamtidee besteht darin, die Datei zu öffnen, die Tabelle auszuwählen, den Zeilen- und Spalteninhalt zu lesen, und lesen Sie die Daten in der Tabelle
Der detaillierte Code lautet wie folgt:
import xlrd from datetime import date,datetime file = 'test3.xlsx' def read_excel(): wb = xlrd.open_workbook(filename=file)#打开文件 print(wb.sheet_names())#获取所有表格名字 sheet1 = wb.sheet_by_index(0)#通过索引获取表格 sheet2 = wb.sheet_by_name('年级')#通过名字获取表格 print(sheet1,sheet2) print(sheet1.name,sheet1.nrows,sheet1.ncols) rows = sheet1.row_values(2)#获取行内容 cols = sheet1.col_values(3)#获取列内容 print(rows) print(cols) print(sheet1.cell(1,0).value)#获取表格里的内容,三种方式 print(sheet1.cell_value(1,0)) print(sheet1.row(1)[0].value)
Das laufende Ergebnis lautet wie folgt:
Dann Die Frage ist, dass im obigen laufenden Ergebnis das rote Feld eindeutig das Geburtsdatum und die tatsächliche Gleitkommazahl darstellt, die gleichzeitig angezeigt werden kann. Es sollte Inhalt in den zusammengeführten Zellen und im Ergebnis vorhanden sein darf nicht leer sein.
Keine Sorge, lösen wir diese beiden Probleme nacheinander:
1. Wie Python den Zellinhalt in Excel als Datum liest
Python liest den Zellinhalt ein Excel Es werden 5 Arten von Zellinhalten zurückgegeben, nämlich der ctype im obigen Beispiel:
ctype: 0 leer, 1 Zeichenfolge, 2 Zahl, 3 Datum, 4 boolean, 5 Fehler
das ist Der ctype von date=3. In diesem Fall müssen Sie xldate_as_tuple von xlrd verwenden, um es in das Datumsformat zu verarbeiten. Erst wenn der ctype=3 der Tabelle beurteilt wird, kann xldate den Vorgang starten.
Der detaillierte Code lautet wie folgt:
import xlrd from datetime import date,datetime print(sheet1.cell(1,2).ctype) date_value = xlrd.xldate_as_tuple(sheet1.cell_value(1,2),wb.datemode) print(date_value) print(date(*date_value[:3])) print(date(*date_value[:3]).strftime('%Y/%m/%d'))
2. Holen Sie sich den Inhalt zusammengeführter Zellen
Vor dem Betrieb führen wir merged_cells( ein. ) Verwendung, die Bedeutung der vier von merged_cells zurückgegebenen Parameter lautet: (row, row_range, col, col_range), wobei [row, row_range) row einschließt, row_range nicht einschließt und das Gleiche für col gilt, das heißt ( 1, 3, 4, 5) Die Bedeutung von (7, 8, 2, 5) ist: Zeilen 1 bis 2 zusammenführen (ohne 3), und die Bedeutung von (7, 8, 2, 5) ist: Spalten 2 zusammenführen bis 4.
Der detaillierte Code lautet wie folgt:
print(sheet1.merged_cells)print(sheet1.cell_value(1,3)) print(sheet1.cell_value(4,3)) print(sheet1.cell_value(6,1))
Haben Sie das Muster gefunden? Ja, rufen Sie einfach den niedrigen Index von Zeile und Spalte ab, der von merge_cells zurückgegeben wird! Sie können es also in Stapeln wie diesen erhalten:
Der detaillierte Code lautet wie folgt:
merge = [] print(sheet1.merged_cells) for (rlow,rhigh,clow,chigh) in sheet1.merged_cells: merge.append([rlow,clow]) for index in merge: print(sheet1.cell_value(index[0],index[1]))
Das laufende Ergebnis ist das gleiche wie auf dem Bild, wie folgt:
Empfohlenes Tutorial: 《Python》
Das obige ist der detaillierte Inhalt vonWie geht Python mit Tabellen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!