2017-09-15 5 views
0

결과없이 Excel 시트에서 특정 시트를 내보내려고합니다. 내가 쓴 어떤 완전히 새로운 파일에 특정 용지 시트를 내보낼 수 있습니다 : 또한특정 시트 내보내기 및 다른 파일 저장 openpyxl

import openpyxl 
book = openpyxl.load_workbook('C:\Python\test.xlsx') 
a = (book.get_sheet_names()) 
sheet1 = book[a[5]] 
sheet1.save('C:\Python\sheet2.xlsx') 

, 또 다른 한가지는 내가 할, 내가 그 이름이있는 경우 특정 시트를 찾을 수 없습니다. 질문은 간단 경우

나는 사과,하지만 난 copy_worksheet() 제공하지 않습니다 파이썬 :

+0

이미이 [질문]에서 모습을 촬영 한 코드는 (https://stackoverflow.com/questions/27101024/copy-whole-worksheet-with-openpyxl)? – floatingpurr

+0

Razel, 방금 해결책을 게시했습니다. 도움이되는지 알려주세요. – floatingpurr

+0

워크 시트에 저장 방법이 없으므로 수행 할 수 없습니다. openpyxl 문서를 읽으면서 더 많은 시간을 보내십시오. –

답변

1

음, openpyxl 시작 이후 몇 일이있었습니다 만에 다른 통합 문서 사이에 사용할 수 없습니다. 셀 단위로 시트를 복사하거나 메모리에서 시작 통합 문서를 수정 한 다음 다른 파일 이름으로 저장할 수 있습니다. 여기

import openpyxl 

# your starting wb with 2 Sheets: Sheet1 and Sheet2 
wb = openpyxl.load_workbook('test.xlsx') 

sheets = wb.sheetnames # ['Sheet1', 'Sheet2'] 

for s in sheets: 

    if s != 'Sheet2': 
     sheet_name = wb.get_sheet_by_name(s) 
     wb.remove_sheet(sheet_name) 

# your final wb with just Sheet1 
wb.save('test_with_just_sheet2.xlsx') 
+0

그리고 자동으로 wb. remove_sheet 명령을 사용하면 필요하지 않은 시트를 모두 제거 할 수 있습니까? – Razel

+0

예, 'Sheet2'라는 이름의 시트를 제외한 모든 시트를 제거하고 필요한 시트가있는 새 파일에 'wb'파일을 저장합니다 – floatingpurr

+0

마지막 요청, uname del foglio가있는 경우 마지막 요청 "hello world1, hello world2, etc "라고하며, 페이지 이름의 마지막 부분 만 가진 파일을 만들어야합니다. world1, world2 등 어떻게해야합니까? [0 : 5]가 올바른가요? 결과적으로 저장 한 파일 이름이 이름에 따라 변경됩니다. – Razel

관련 문제