Python은 xlrd 및 xlwt를 사용하여 Excel을 읽고, 쓰고, 서식을 지정합니다.

高洛峰
풀어 주다: 2017-02-20 10:48:26
원래의
1885명이 탐색했습니다.

최근 파이썬을 사용하여 엑셀 테이블을 처리할 때 일부 문제가 발생하여 최종 구현 방법과 문제 해결 방법을 기록하려고 생각했습니다. 여러분의 편의를 위해 또는 필요할 때 모든 사람이 참조할 수 있도록 다음 기사에서는 Python의 xlrd 및 xlwt 사용에 대한 관련 정보를 주로 소개하여 Excel을 읽고 쓰고 서식을 지정합니다.

머리말

Python은 Excel을 동작시키기 위해 주로 xlrd와 xlwt 두 라이브러리를 사용합니다. 즉, xlrd는 Excel을 읽기 위한 라이브러리이고, xlwt는 쓰기를 위한 라이브러리입니다. 뛰어나다. 이 기사에서는 Excel을 읽고, 쓰고, 서식을 지정하기 위한 Python의 xlrd 및 xlwt 사용을 주로 소개합니다. 이제 자세한 구현 프로세스를 살펴보겠습니다.

스크립트에 # -*-coding:utf-8 -*- 표시

1. 양식의 각 행의 첫 번째 열입니다.


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열의 셀을 병합한 후 제목을 작성하고 앞서 정의한 title_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. 시트에서 읽은 원래 날짜 형식은 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. 엑셀에서 읽어온 날짜 형식이 xldate인 경우 xlrd의 xldate_as_tuple을 사용하여 날짜 형식으로 처리해야 합니다. 먼저 작업을 시작하기 전에 테이블의 ctype이 실제로 xldate인지 확인하십시오. 그렇지 않으면 오류가 보고됩니다. 그런 다음 strftime을 사용하여 날짜 형식을 문자열로 변환할 수 있습니다. 예: 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')
로그인 후 복사


xlrd 및 xlwt를 사용하여 Excel을 읽고, 쓰고, 서식을 지정하는 Python 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!