python은 xlrd와 xlwt를 사용하여 excel에 대한 읽기와 형식 설정을 사용합니다

2616 단어
앞말
python 조작 excel은 주로 xlrd와 xlwt 두 라이브러리에 사용됩니다. 즉, xlrd는 excel을 읽고 xlwt는 excel을 쓰는 라이브러리입니다.본고는 주로python이 xlrd와xlwt를 사용하여 excel에 대한 읽기와 쓰기, 형식 설정을 소개했는데 다음은 더 이상 말하지 않고 상세한 실현 과정을 살펴보겠습니다.
스크립트에 #-*-coding:utf-8-*-
1. 원본 excel이 존재하는지 확인하고 첫 번째 폼의 줄마다 첫 번째 열의 수치를 xlrd로 읽습니다.

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. xlwt로 원본 테이블에서 읽은 데이터를 새 테이블에 쓸 준비를 하고 줄 넓이와 표의 형식을 설정합니다.셀 2행 8열을 병합하여 제목을 쓰고 이전에 정의된tittle_style.
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. 함수에 전역 변수를 사용할 때 글로벌을 추가합니다.그렇지 않으면 나타날 것이다UnboundLocalError:local variable'xxx' referenced before assignment.

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

4. 날짜와 형식이 있는 값을 기록합니다.원래 sheet에서 읽은 날짜 형식은 2014/4/10입니다. 처리된 날짜는 날짜만 보존하고 그룹을 쉼표로 구분해서 새 excel에 씁니다.

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. excel에서 읽은 날짜 형식이 xldate일 때 xlrd의 xldate_를 사용해야 합니다as_tuple은date 형식으로 처리됩니다.먼저 표의ctype가 xldate인지 판단해야 조작을 시작할 수 있습니다. 그렇지 않으면 오류가 발생할 수 있습니다.이후date 형식은strftime를 사용하여string으로 전환할 수 있습니다.예: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. 마지막으로 새로 쓴 표 저장

wbk.save('new_excel.xls') 

총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 어느 정도 도움이 되고 의문이 있으면 댓글로 교류하시기 바랍니다.

좋은 웹페이지 즐겨찾기