셀 병합
작업 방법:
1. xlrd 자체 속성 사용: merged_cells
# 테이블에서 병합된 모든 셀의 위치를 가져오고 목록 형식으로 반환합니다(시작 행). , 끝 행, 시작 열, 끝 열)
merged = sheet.merged_cells #결과: [(1,5,0,1),(5,9,0,1)]
2. 루프를 사용하여 결정합니다. 셀을 병합하든 일반 셀을 병합하든 병합된 셀의 첫 번째 행 값을 병합된 셀에 할당합니다
def get_cell_type(row_index, col_index): """既能得到合并单元格也能得到普通单元格""" cell_value = None for (rlow, rhigh, clow, chigh) in merged: # 遍历表格中所有合并单元格位置信息 # print(rlow,rhigh,clow,chigh) if (row_index >= rlow and row_index < rhigh): # 行坐标判断 if (col_index >= clow and col_index < chigh): # 列坐标判断 # 如果满足条件,就把合并单元格第一个位置的值赋给其它合并单元格 cell_value = sheet.cell_value(rlow, clow) print('合并单元格') break # 不符合条件跳出循环,防止覆盖 else: print('普通单元格') cell_value = sheet.cell_value(row_index, col_index) # else: 添加改行后只那一个单元格的内容5,0 会返回2个值普通单元格/合并单元格 # print('普通单元格') # cell_value = sheet.cell_value(row_index, col_index) return cell_value # 直接输入单元格的坐标。来获取单元格内容 # print(get_cell_type(5, 0)) # 利用循环输出某列的单元格内容 for i in range(1, 9): print(get_cell_type(i, 2))
PS: Excel 파일에서 병합된 셀을 읽는 가장 간단한 작업
질문:
1. , 좌표를 사용하여 인쇄합니다. 가장 바깥쪽 레이어에 다른 값이 있으면 2개의 값이 반환됩니다. (가장 바깥쪽 레이어에 다른 값이 없으면 아직 확인 중입니다.)
2. 처음 사용할 때는 정상적으로 작동하지만, sheet.merged_cells는 다시 사용할 때 빈 목록을 반환합니까? ?
해결 방법: 열린 파일에 format_info=True를 추가하면 정상적으로 표시됩니다.
위 내용은 이 글의 전체 내용이므로 모든 분들의 학습에 도움이 되기를 바랍니다.
관련 학습 권장사항: python 비디오 튜토리얼
위 내용은 Python에서 xlrd를 사용하여 병합된 셀을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!