최근 파이썬을 사용하여 엑셀 테이블을 처리할 때 일부 문제가 발생하여 최종 구현 방법과 문제 해결 방법을 기록하려고 생각했습니다. 여러분의 편의를 위해 또는 필요할 때 모든 사람이 참조할 수 있도록 다음 기사에서는 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 중국어 웹사이트를 주목하세요!