Heim  >  Artikel  >  Backend-Entwicklung  >  Wie geht Python mit Tabellen um?

Wie geht Python mit Tabellen um?

coldplay.xixi
coldplay.xixiOriginal
2020-06-10 15:37:597233Durchsuche

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:

Wie geht Python mit Tabellen um?

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:

Wie geht Python mit Tabellen um?

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:

Wie geht Python mit Tabellen um?

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'))

Wie geht Python mit Tabellen um?

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))

Wie geht Python mit Tabellen um?

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:

Wie geht Python mit Tabellen um?

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!

Stellungnahme:
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