source

워크북에서 워크시트를 반복하는 방법, openpyxl

manysource 2023. 6. 4. 10:38

워크북에서 워크시트를 반복하는 방법, openpyxl

openpyxl 모듈을 사용하여 일부 .xlsx 파일을 처리하고 있습니다.저는 워크북에서 시트를 반복하는 방법을 찾고 있습니다.제가 그걸 알아낼 수 있을지 모르겠어요.아래 두 코드 모두 빈 결과를 반환하는 코드 2개의 코드를 시도해 보았습니다.제 .xlsx 파일은 약 20장 정도의 시트를 가지고 있기 때문에 뭔가가 반환될 것입니다.

제가 인터넷에서 찾을 수 없었던 한 가지는, 실제 워크북으로 워크북을 설정하는 방법입니다.보통 워크북에 쓰기 때문에 워크북을 비우도록 변수를 설정하여 초기화합니다.workbook = Workbook()하지만 이 경우에, 저는 제가 워크북을 열 수 있을지 확신할 수 없습니다.workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")

제가 잘못하고 있는 것이 무엇인지 누군가가 알아볼 수 있다면 감사하겠습니다.

내 코드는 다음과 같습니다.

workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")

for sheet in workbook.worksheets:
    print sheet

# or

for sheet in workbook.worksheets:
    print sheet.title

load_workbook()을 통해 워크북을 열고 다음을 반복합니다.worksheets:

from openpyxl import load_workbook

wb = load_workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")

for sheet in wb.worksheets:
    print(sheet)

코드에 대한 활성 워크시트가 필요한 경우 다음과 같습니다.

for sheet in wb:
    ws = wb[sheet]
    print('Now in sheet: ' + ws.title)

워크북의 모든 시트 제목 인쇄하기

from openpyxl import load_workbook

wb = load_workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
print(wb.sheetnames)

저는 전체 "워크북.active"에 대해 약간 어려움을 겪었고 어떻게 극복해야 할지 몰랐기 때문에 모든 것을 조금씩 시도해 보았습니다. 그리고 여기 제게 잘 맞는 것이 있습니다!

for sheet in workbook.sheetnames[2:len(workbook.sheetnames)]:
     ws = workbook[value]
     for val in ws.iter_rows(min_row=11, max_row=21, min_col=2, max_col=10, values_only=True):
          print(str(sheet) + " " + str(val))

이렇게 하면 세 번째 시트로 시작하는 시트 이름이 인쇄됩니다. 제가 필요로 했던 것과 참조한 모든 셀 값이 인쇄됩니다.다른 유일한 점은 목록을 인쇄하는 것입니다. 각 값을 반복하여 "0" 또는 "없음" 값을 추출하려면 다른 루프가 필요합니다.이것이 다른 사람이 찾는 사람에게 도움이 되기를 바랍니다!

언급URL : https://stackoverflow.com/questions/18495672/how-to-iterate-over-worksheets-in-workbook-openpyxl