programing

openpyxl 일반 워크북을 사용하여 열의 마지막 행을 찾는 방법은 무엇입니까?

yoursource 2023. 5. 7. 21:10
반응형

openpyxl 일반 워크북을 사용하여 열의 마지막 행을 찾는 방법은 무엇입니까?

저는 openpyxl을 사용하여 "Default"가 있는 모든 행에 데이터 유효성 검사를 적용하고 있습니다.하지만 그러기 위해서는 몇 개의 줄이 있는지 알아야 합니다.

Itreable Workbook 모드를 사용하는 경우 이를 수행할 수 있는 방법이 있다는 것을 알고 있지만, 새 시트를 Workbook에 추가하고 Itreable 모드에서는 불가능합니다.

ws.max_row워크시트의 행 수가 표시됩니다.

openpyxl 2.4 버전부터는 개별 행과 열에도 액세스할 수 있으며 해당 길이를 사용하여 질문에 답변할 수 있습니다.

len(ws['A'])

단일 열에 대한 데이터 검증을 위해 Excel이 사용하는 것을 사용합니다.1:1048576.

이것은 저에게 잘 맞습니다.각 열에 비어 있지 않은 행의 수가 표시됩니다. 즉, 각 열 사이에 빈 행이 없다고 가정합니다.

from openpyxl import load_workbook as lw
from openpyxl.utils import get_column_letter

wb = lw(your_xlsx_file)
ws = wb[sheet_name]

for col in range(1, ws.max_column + 1):
    col_letter = get_column_letter(col)
    max_col_row = len([cell for cell in ws[col_letter] if cell.value])
    print("Column: {}, Row numbers: {}".format(col_letter, max_col_row)

여기 도움이 될 수 있는 다른 솔루션이 있습니다 - openpyxl 함수 max_row 및 max_column은 스타일이 적용된 빈 셀도 고려하기 때문에, 저는 그런 경우에 판다를 사용하는 것이 더 낫다고 생각합니다.

import pandas as pd

def get_max_row_column(df, sheet_name):
    max_row = 1
    max_col = 1
    for sh_name, sh_content in df.items():
        if sh_name == sheet_name:
            max_row = len(sh_content) + 1
            max_col = len(sh_content.columns)
            break
    coordinates = {'max_row': max_row, 'max_col': max_col}
return coordinates

df = pd.read_excel('xls_path', sheet_name=None)
max_row = get_max_row_column(df, 'Test_sheet')['max_row']
max_col = get_max_row_column(df, 'Test_sheet')['max_col']

sheet_name=Discovery를 제공함으로써 모든 워크시트의 사전을 만듭니다. 여기서 키는 시트 이름과 가치 시트 내용(판다 데이터 프레임 사실상)입니다.

행의 길이와 열의 길이를 찾습니다.

열:

column=sheet['A']
output tuple-->(A1,A2,A3........An)

len(column)
output length--> 18                    

행 길이:

for i in sheet.iter_rows(max_row=0):

    print(len(i))

    break

피쳐 이름을 입력하는 헤더 행의 길이가 표시됩니다.모든 행 길이를 가져오려면 max_row=len(열)을 추가하고 브레이크를 제거합니다.

언급URL : https://stackoverflow.com/questions/33541692/how-to-find-the-last-row-in-a-column-using-openpyxl-normal-workbook

반응형