xlrd、xlwt
4339 단어 Flask
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을 사용해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
GCE로 Flask를 이동!GCE에서 우선 Flask를 사용하여 웹 페이지를 게시하는 단계입니다. 우선이므로, 움직이면 좋다고 하는 느낌입니다. 우선 공개하므로 최소 사양으로 갑니다. 다음 구성으로 인스턴스를 만듭니다. 이름 gce-flask...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.