Python 3 엑셀 표 데 이 터 를 읽 고 기록 하 는 예제 코드
1.python 에서 엑셀 표 데 이 터 를 읽 습 니 다.
1.엑셀 표 데 이 터 를 읽 는 데 자주 사용 되 는 작업
import xlrd
# excel
data_excel=xlrd.open_workbook('data/dataset.xlsx')
# sheet
names=data_excel.sheet_names()
# book sheet , xlrd.sheet.Sheet()
table=data_excel.sheets()[0] # sheet
table=data_excel.sheet_by_index(sheetx=0) # sheet
table=data_excel.sheet_by_name(sheet_name='Sheet1') #
# excel
n_rows=table.nrows # sheet
n_cols=table.ncols # sheet
row_list=table.row(rowx=0) #
cols_list=table.col(colx=0) #
#
row_data=table.row_values(0,start_colx=0,end_colx=None)
#
cols_data=table.col_values(0,start_rowx=0,end_rowx=None)
row_lenth=table.row_len(0) #
# excel
row_col=table.cell(rowx=0,colx=0) #
row_col_data=table.cell_value(rowx=0,colx=0) #
2.xlrd 모듈 의 주요 조작
import xlrd
""" excel """
workbook = xlrd.open_workbook("data.xlsx")
print(workbook) # :<xlrd.book.Book object at 0x000000000291B128>
""" sheet """
sheet_names = workbook.sheet_names()
print(sheet_names) # :[' 1', 'Sheet2']
""" sheet """
# sheet
sheets_object = workbook.sheets()
print(sheets_object) # :[<xlrd.sheet.Sheet object at 0x0000000002956710>, <xlrd.sheet.Sheet object at 0x0000000002956AC8>]
# index sheet
sheet1_object = workbook.sheet_by_index(0)
print(sheet1_object) # :<xlrd.sheet.Sheet object at 0x0000000002956710>
# name sheet
sheet1_object = workbook.sheet_by_name(sheet_name=" 1")
print(sheet1_object) # :<xlrd.sheet.Sheet object at 0x0000000002956710>
""" sheet """
# index sheet1
sheet1_is_load = workbook.sheet_loaded(sheet_name_or_index=0)
print(sheet1_is_load) # :True
# sheet sheet1
sheet1_is_load = workbook.sheet_loaded(sheet_name_or_index=" 1")
print(sheet1_is_load) # :True
""" sheet """
# sheet1
nrows = sheet1_object.nrows
print(nrows) # :5
# sheet1 3
all_row_values = sheet1_object.row_values(rowx=2)
print(all_row_values) # :[3.0, 'b', 1, '']
row_values = sheet1_object.row_values(rowx=2, start_colx=1, end_colx=3)
print(row_values) # :['b', 1]
# sheet1 3
row_object = sheet1_object.row(rowx=2)
print(row_object) # :[number:3.0, text:'b', bool:1, empty:'']
# sheet1 3
row_slice = sheet1_object.row_slice(rowx=2)
print(row_slice) # :[number:3.0, text:'b', bool:1, empty:'']
# sheet1 3
row_types = sheet1_object.row_types(rowx=2)
print(row_types) # :array('B', [2, 1, 4, 0])
# sheet1 3
row_len = sheet1_object.row_len(rowx=2)
print(row_len) # :4
# sheet1
rows_generator = sheet1_object.get_rows()
print(rows_generator) # :<generator object Sheet.get_rows.<locals>.<genexpr> at 0x00000000028D8BA0>
""" sheet """
# sheet1
ncols = sheet1_object.ncols
print(ncols) # :4
# sheet1 colx=1
col_values = sheet1_object.col_values(colx=1)
print(col_values) # :[' ', 'a', 'b', 'c', 'd']
col_values1 = sheet1_object.col_values(1, 1, 3)
print(col_values1) # :['a', 'b']
# sheet1 2
col_slice = sheet1_object.col_slice(colx=1)
print(col_slice) # :[text:' ', text:'a', text:'b', text:'c', text:'d']
# sheet1 2
col_types = sheet1_object.col_types(colx=1)
print(col_types) # :[1, 1, 1, 1, 1]
""" sheet """
# sheet1 rowx=1 , colx=2
cell_info = sheet1_object.cell(rowx=1, colx=2)
print(cell_info) # : text:'m'
print(type(cell_info)) # :<class 'xlrd.sheet.Cell'>
# sheet1 rowx=1 , colx=2
cell_value = sheet1_object.cell_value(rowx=1, colx=2)
print(cell_value) # : m
# sheet1 rowx=1 , colx=2
cell_type = sheet1_object.cell_type(rowx=1, colx=2)
print(cell_type) # :1
# ctype:empty 0,string 1,number 2,date 3,boolean 4,error 5;
3.셀 내용 을 날짜 시간 으로 읽 는 방식
import xlrd
import datetime
""" sheet """
workbook = xlrd.open_workbook("data.xlsx")
sheet2_object = workbook.sheet_by_name("Sheet2")
# value_type = sheet2_object.cell(0, 1).ctype
value_type = sheet2_object.cell_type(0, 1)
print(value_type) # :3 , date
if value_type == 3:
print(" ")
cell_value = sheet2_object.cell_value(1, 0)
print(cell_value) # :43567.0
date_tuple = xlrd.xldate_as_tuple(cell_value, workbook.datemode)
print(date_tuple) # :(2020, 4, 12, 0, 0, 0)
date_value = datetime.date(*date_tuple[:3])
print(date_value) # :2020-04-12
date_format = date_value.strftime('%Y/%m/%d')
print(date_format) # :2020/04/12
4.병합 셀 의 데 이 터 를 읽 습 니 다.표 가 xls 형식 이 라면 워 크 북 을 열 때 formatterinfo 를 True 로 설정 한 다음 sheet 의 병합 셀 가 져 오기;표 에 xlsx 형식 이 있 으 면 워 크 북 을 열 때 formatter 를 유지 합 니 다.info 는 기본 값 False 이 고 sheet 의 병합 셀 을 가 져 옵 니 다.
SheetObject.merged_cells:sheet 에서 셀 을 합 친 정 보 를 가 져 오고 값 을 목록 으로 되 돌려 줍 니 다.sheet 대상 에 병합 셀 이 없 으 면 빈 목록 으로 되 돌아 갑 니 다.목록 에 있 는 모든 셀 정보의 형식 은:(rowstart, row_end, col_start, col_end); row_start 는 병합 셀 의 시작 줄 을 표시 합 니 다.row_end 는 셀 을 합 친 끝 줄 을 표시 합 니 다.col_start 는 병합 셀 의 시작 열 을 표시 합 니 다.col_end 는 셀 을 합 친 끝 열 을 표시 합 니 다.셀 을 합 친 줄 의 값 범 위 는[rowstart, row_end),row 포함start,row 포함 되 지 않 음end;셀 을 합 친 열 추출 범 위 는[colstart, col_end),col 포함start,col 포함 되 지 않 음end;예 를 들 어(1,3,4,6):1 에서 2 행 까지 합병 하고 4 에서 5 열 까지 합병 하 는 것 을 나타 낸다.
병합 셀 데 이 터 를 읽 으 려 면 merged 만 필요 합 니 다.cells 데이터 의 rowstart 와 colstart 이 두 색인 만 있 으 면 됩 니 다.
import xlrd
""" """
# xlsx excel
workbook = xlrd.open_workbook("data.xlsx")
sheet2_object = workbook.sheet_by_name("Sheet2")
print(sheet2_object.merged_cells) # : [(1, 2, 0, 2), (3, 6, 0, 2)]
# xls excel
workbook1 = xlrd.open_workbook("data.xls", formatting_info=True)
sheet2_object1 = workbook1.sheet_by_name("Sheet2")
print(sheet2_object1.merged_cells) # : [(1, 2, 0, 2), (3, 6, 0, 2)]
# ( “ ” )
print(sheet2_object.cell_value(1, 0)) # : 1
print(sheet2_object.cell_value(3, 0)) # : 2
# for
for (row_start, row_end, col_start, col_end) in sheet2_object.merged_cells:
print(sheet2_object.cell_value(rowx=row_start, colx=col_start))
2.python 이 엑셀 표 데 이 터 를 기록 합 니 다.1.엑셀 표 데 이 터 를 작성 하 는 데 자주 사용 되 는 작업 과 형식 설정
import xlwt
import datetime
# workbook
workbook = xlwt.Workbook(encoding='utf-8')
# worksheet
worksheet = workbook.add_sheet('Sheet1')
#
style = xlwt.XFStyle() #
font = xlwt.Font() #
font.name = 'Times New Roman'
font.height = 20 * 11 # ,11 ,20
font.bold = True #
font.underline = True #
font.italic = True #
style.font = font #
# excel, , ,
worksheet.write(0, 0, 'test_data') #
worksheet.write(1, 0, 'test_data', style) #
#
worksheet.col(0).width = 3333
#
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 13
style = xlwt.XFStyle() # Create the Pattern
style.pattern = pattern # Add Pattern to Style
worksheet.write(2, 0, 'colour', style)
#
borders = xlwt.Borders() # Create Borders
borders.left = xlwt.Borders.DASHED #DASHED ,NO_LINE ,THIN
borders.right = xlwt.Borders.DASHED #borders.right=1
borders.top = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DASHED
borders.left_colour=0x40
borders.right_colour = 0x40
borders.top_colour = 0x40
borders.bottom_colour = 0x40
style = xlwt.XFStyle() # Create Style
style.borders = borders # Add Borders to Style
worksheet.write(3,0 , 'border1', style)
#
# :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13
borders = xlwt.Borders()
borders.left = 1 #
borders.right = 1
borders.top = 1
borders.bottom = 1
borders.left_colour = 2 #
borders.right_colour = 2
borders.top_colour = 2
borders.bottom_colour = 2
style = xlwt.XFStyle() # Create Style
style.borders = borders # Add Borders to Style
worksheet.write(4, 0, 'border2', style)
#
style = xlwt.XFStyle()
style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
worksheet.write(5, 0, datetime.datetime.now(), style)
#
worksheet.write(0, 1, 2) # Outputs 2
worksheet.write(0, 2, 3) # Outputs 3
worksheet.write(1, 1, xlwt.Formula('B1*C1')) # Should output "6" (B1[2] * B2[6])
worksheet.write(1, 2, xlwt.Formula('SUM(B1,C1)')) # Should output "5" (B1[2] + C1[3])
#
worksheet.write(0, 3, xlwt.Formula('HYPERLINK("http://www.baidu.com";"baidu")')) # Outputs the text "baidu" linking to http://www.baidu.com
#
worksheet.write_merge(0, 0, 4, 5, 'First Merge') # 0 4 5
worksheet.write_merge(1, 2, 4, 5, 'Second Merge') # 1 2 4 5
#
alignment=xlwt.Alignment() ## Create Alignment
alignment.horz=xlwt.Alignment.HORZ_CENTER
alignment.vert=xlwt.Alignment.VERT_CENTER
style=xlwt.XFStyle()
style.alignment=alignment # Add Alignment to Style
worksheet.write(0, 6, 'alignment', style)
#
workbook.save('data_test.xls')
2,글꼴 색상 과 배경 색상 대응 색인 번호 글꼴 색상:font.colourindex 배경 색:pattern.patternfore_colourPython 3 에서 엑셀 표 데 이 터 를 읽 고 기록 하 는 예제 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Python 3 에서 엑셀 내용 을 읽 고 기록 하 는 것 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
#2_Raspberry Pi 3B+에서 LINE에 일기 예보 알림도쿄에 와서 갑자기 비가 오는 경우가 많습니다. "아침 제대로 일기 예보를 체크해 두면..."라고 후회하는 것이 자주. LINE에 매일 아침 일기 예보를 보내 주시면 좋지 않아? 라고 생각하고 만들어 보기로 했습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.