Heim  >  Artikel  >  Backend-Entwicklung  >  Python verwendet xlrd und xlwt zum Lesen, Schreiben und Formatieren von Excel

Python verwendet xlrd und xlwt zum Lesen, Schreiben und Formatieren von Excel

高洛峰
高洛峰Original
2017-02-20 10:48:261887Durchsuche

Vor kurzem traten einige Probleme bei der Verwendung von Python zur Verarbeitung von Excel-Tabellen auf, daher dachte ich darüber nach, die endgültige Implementierungsmethode und die Problemlösungsmethode aufzuzeichnen. Zu Ihrer eigenen Bequemlichkeit oder damit jeder bei Bedarf darauf zurückgreifen kann, stellt der folgende Artikel hauptsächlich die relevanten Informationen zur Verwendung von xlrd und xlwt zum Lesen, Schreiben und Formatieren von Excel vor. Lassen Sie uns gemeinsam lernen.

Vorwort

Python verwendet hauptsächlich die beiden Bibliotheken xlrd und xlwt, um Excel zu betreiben, dh xlrd ist eine Bibliothek zum Lesen von Excel und xlwt ist eine Bibliothek zum Schreiben übertreffen. In diesem Artikel wird hauptsächlich die Verwendung von xlrd und xlwt durch Python zum Lesen, Schreiben und Formatieren von Excel vorgestellt. Schauen wir uns ohne weitere Umschweife den detaillierten Implementierungsprozess an.

Geben Sie # -*- programming:utf-8 -*- im Skript an

1 Bestätigen Sie, dass das Quell-Excel vorhanden ist, und verwenden Sie den Wert in die erste Spalte jeder Zeile in einem Formular.


import xlrd, xlwt 
import os 
 
assert os.path.isfile('source_excel.xls'),"There is no timesheet exist. Exit..." 
 
book = xlrd.open_workbook('source_excel.xls') 
sheet=book.sheet_by_index(0) 
 
for rows in range(sheet.nrows): 
 value = sheet.cell(rows,0).value


2. Verwenden Sie xlwt, um die aus der Quelltabelle gelesenen Daten in eine neue Tabelle zu schreiben und die Zeilenbreite festzulegen Tabellenformat. Nachdem Sie 2 Zeilen und 8 Spalten mit Zellen zusammengeführt haben, schreiben Sie den Titel und stellen Sie das Format auf den zuvor definierten Titelstil ein.

Verwendet write_merge.


wbk = xlwt.Workbook(encoding='utf-8') 
sheet_w = wbk.add_sheet('write_after', cell_overwrite_ok=True) 
sheet_w.col(3).width = 5000 
tittle_style = xlwt.easyxf('font: height 300, name SimSun, colour_index red, bold on; align: wrap on, vert centre, horiz center;') 
sheet_w.write_merge(0,2,0,8,u'这是标题',tittle_style)


3 Wenn Sie globale Variablen in einer Funktion verwenden, fügen Sie unbedingt globale hinzu. Ansonsten: UnboundLocalError:local variable'xxx' referenced before assignment.


check_num = 0 
 
def check_data(sheet): 
 global check_num 
 check_num=check_num+1


4. Schreiben Sie das Datum und den formatierten Wert. Das aus dem Blatt gelesene ursprüngliche Datumsformat ist 2014/4/10. Nach der Verarbeitung wird nur das Datum beibehalten und in ein durch Kommas getrenntes Array umgewandelt und in ein neues Excel geschrieben.


date_arr = [] 
date=sheet.cell(row,2).value.rsplit('/')[-1] 
if date not in date_arr: 
  date_arr.append(date) 
sheet_w.write_merge(row2,row2,6,6,date_num, normal_style) 
sheet_w.write_merge(row2,row2,7,7,','.join(date_arr), normal_style)


5 Wenn das aus Excel gelesene Datumsformat xldate ist, müssen Sie xldate_as_tuple von xlrd verwenden, um es in Datum zu verarbeiten Format. Stellen Sie zunächst sicher, dass der ctype der Tabelle tatsächlich xldate ist, bevor Sie den Vorgang starten. Andernfalls wird ein Fehler gemeldet. Das Datumsformat kann dann mit strftime in einen String umgewandelt werden. Zum Beispiel: date.strftime("%Y-%m-%d-%H")


from datetime import date,datetime 
from xlrd import xldate_as_tuple 
 
if (sheet.cell(rows,3).ctype == 3): 
  num=num+1 
  date_value = xldate_as_tuple(sheet.cell_value(rows,3),book.datemode) 
  date_tmp = date(*date_value[:3]).strftime("%d")


6. Speichern Sie abschließend die neu geschriebene Tabelle


wbk.save('new_excel.xls')


Weitere Artikel zum Thema Python mit xlrd und xlwt zum Lesen, Schreiben und Formatieren von Excel finden Sie auf der chinesischen PHP-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