xlrd、xlwt

4339 단어 Flask
xlrd
xlrd는 Excel에서 데이터를 읽고 쓰는 데 사용됩니다.xlrd로 읽는 것이 편리하고, 프로세스는 보통 수동으로 Excel을 조작하는 것과 마찬가지로, 워크북(Workbook)을 열고, 워크시트(sheets)를 선택한 다음, 셀(cell)을 조작합니다.다음 예를 들어 현재 디렉터리의'data'를 열려고 합니다.xlsx의 Excel 파일입니다. 첫 번째 워크시트를 선택하고 첫 줄의 모든 내용을 읽고 출력합니다.파이썬 코드는 다음과 같습니다.
# excel 
data=xlrd.open_workbook('data.xlsx')
# ( )
table=data.sheets()[0] #data_list 
data_list=[] # table data_list 
data_list.extend(table.row_values(0))
# 
for item in data_list:
print item

위의 코드에서 한 줄을table로 읽습니다.row_values (number), 유사한 열 읽기용table.column_values(number), 그 중에서number는 줄 인덱스이고 xlrd에서 줄과 열은 모두 0에서 인덱스되기 때문에 Excel에서 가장 왼쪽 상단의 칸 A1은 0줄 0열입니다.
xlrd에서 어떤 칸을 읽을 때 테이블을 사용합니다.cell(row,col)이면 됩니다. 그 중에서row와col는 각각 칸에 대응하는 줄과 열입니다.
다음은 간단하게 xlrd의 용법을 귀납합니다
xlrd 용법 총결산
data=xlrd.open_workbook(filename)# Excel 
data.sheet_names()# sheet 

작업표 선택 (색인 또는 테이블 이름을 통해)
table=data.sheets()[0]# 
table=data.sheet_by_index(0)# 
table=data.sheet_by_name(u' ')# 

테이블의 행 및 열 수 가져오기
nrows=table.nrows
ncols=table.ncols

전체 행과 열 값 가져오기
table.row_values(number)
table.column_values(number)

반복을 통해 테이블의 모든 행 읽기
for rownum in xrange(table.nrows):
print table.row_values(rownum)

셀 값 가져오기

cell_A1=table.row(0)[0].value
# 
cell_A1=table.cell(0,0).value
# 
cell_A1=table.col(0)[0].value

 
xlwt
만약에 xlrd가 단순한 Reader가 아니라면 (xlrd의 두 문자를 Reader로 본다면, xlwt의 두 문자는 Writer와 유사하다.) xlwt는 순수한 Writer이다. 왜냐하면 Excel에 대해서만 쓰기 작업을 할 수 있기 때문이다.
xlwt 일반 작업
새 Excel 파일(새 쓰기만 가능)
data=xlwt.Workbook()

새 워크시트 만들기
table=data.add_sheet('name')

A1 셀에 데이터 쓰기
table.write(0,0,u' ')

주의: 같은 칸을 반복하면 overwrite Exception이 발생합니다. 이 기능을 취소하려면 작업표를 추가할 때 덮어쓸 수 있도록 지정해야 합니다. 아래와 같이
table=data.add_sheet('name',cell_overwrite_ok=True)
 
data.save('test.xls')

 xls ,xlsx 

xlwt , 


# 
style=xlwt.XFStyle()

# 
font=xlwt.Font()

# 
font.name='Times New Roman'

# 
font.bold=True

# font style 
style.font=font

# 
sheet.write(0,1,'just for test',style)

openpyxl
이 모듈은 최신 Excel 파일 형식을 지원하며 Excel 파일에 응답하는 읽기와 쓰기를 지원합니다. 여기에 전문적인 Reader와 Writer 두 종류가 있어 Excel 파일에 대한 조작이 편리합니다.그럼에도 불구하고 나는 보통 기본 워크북으로 조작한다.일반적인 작업은 다음과 같이 요약됩니다.
openpyxl 상용 작업
 Excel 
from openpyxl.reader.excel import load_workbook

wb=load_workbook(filename)

 
wb.get_named_ranges()

 
wb.get_sheet_names()

 
sheetnames = wb.get_sheet_names()
ws = wb.get_sheet_by_name(sheetnames[0])

 
ws.title

 
ws.get_highest_row()

 
ws.get_highest_column()

칸의 읽기, 여기는 xlrd의 읽기 방식과 비슷합니다. 줄과 열의 색인을 통해 읽습니다.
물론 Excel 좌표를 통해 데이터를 읽는 것도 지원됩니다. 코드는 다음과 같습니다.
ws.cell("B1").value# B1 

파일을 쓰는 데는 좌표를 통과하는 조작 방식 하나만 있다.예를 들어 셀 C1에 데이터를 쓰려면 유사한 ws를 사용해야 한다.cell(“C1”).value=something 이런 식입니다.
일반적으로 추천하는 방식은 Openpyxl의 Writer 클래스로 이루어집니다.코드는 다음과 같습니다.
어떤 칸에 파일을 쓸 때 그에 대응하는 줄 수와 열 수를 알아야 한다. 여기서 줄 수는 1부터 계산하고 열은 알파벳 A부터 시작하기 때문에 첫 번째 줄의 첫 번째 열은 A1이다. 이것은 사실상 좌표 방식으로 Excel을 조작하는 것이다.예를 들어 표의 세 번째 줄 첫 번째 열에 수치 1.2를 삽입하고 xlwt로 쓰면table입니다.write(2,0,1.2), xlwt에서 행렬 인덱스가 0에서 시작되기 때문입니다.Openpyxl로 쓰면 ws입니다.cell(“A3”).value=1.2.일반적으로 큰 열의 수는 get_를 통해column_letter 함수는 상응하는 문자를 얻은 다음cell 함수를 호출하여 기록합니다.
다음은 내가 이전에 쓴 코드의 일부분으로 여러 개의 그룹을 Excel 파일에 저장하는 것을 보여 준다.다차원 그룹을 나타내기 위해numpy를 사용했고, 프로세스를 간소화하기 위해 ExcelWriter를 사용하지 않았다.코드는 다음과 같습니다.
#coding:utf-8

from openpyxl import Workbook
from openpyxl.cell import get_column_letter

import numpy as np
# 
a=np.diag([1,2,3,4,5])

# 
wb=Workbook()
# ( Excel )
ws=wb.active
# a , cell 1 ,a 0 。
for row in xrange(1,a.shape[0]+1):
for col in xrange(1,a.shape[1]+1):
col_letter=get_column_letter(col)
ws.cell('%s%s'%(col_letter,row)).value=a[row-1,col-1] wb.save('test.xlsx')

총결산
Excel을 읽을 때 Openpyxl과 xlrd를 선택하면 차이가 크지 않고 요구를 충족시킬 수 있습니다
소량의 데이터를 쓰고 xls 형식 파일로 저장할 때 xlwt를 사용하면 더욱 편리합니다
대량의 데이터 (xls 형식 제한을 초과) 를 쓰거나 xlsx 형식 파일로 저장해야 할 때,openpyxl을 사용해야 합니다.

좋은 웹페이지 즐겨찾기