Excel 통합 문서를 xlrd
으로 열고, xlutils
으로 복사하고 xlwt
으로 업데이트 한 다음 다시 다른 파일에 씁니다.xlutils를 사용하여 XLS를 복사 할 때 명명 된 범위 유지
결과 통합 문서에 원본에있는 명명 된 범위가 모두 누락되었습니다. 복사를하기 전에 xlrd
개체에서 실제로 그들을 읽었 기 때문에 명명 된 범위가 원본에 존재한다는 사실을 100 % 확신하고 이에 대한 업데이트를 기반으로합니다.
xlutils.copy.copy
을 사용하는 것이 자연스러운 결과라고 가정하면 xlwt
은 동일한 통합 문서의 xlrd
버전에서 읽은 명명 된 범위를 다시 만들 수있는 방법이 있습니까? 문서 (적어도 내가 찾을 수있는 것)는 희소합니다. 여기
>>> from xlrd import open_workbook
>>> wb = open_workbook('sc_auction_template.xls', formatting_info=True)
>>> print len(wb.name_obj_list) # see, there are named ranges
9
>>> from xlutils.copy import copy
>>> wb2 = copy(wb)
>>> wb2.save('test.xls')
>>> wb = open_workbook('test.xls')
>>> print len(wb.name_obj_list) # but now there are none!
0
"formatting_info = True"란 무엇입니까? 첫 번째 열어 보았지만 두 번째 열지는 않았습니다 ... 왜? – Antoni4040
스프레드 시트에서 셀 서식 정보를 읽으려면 xlrd해야합니다. 이 코드를 잘라서 실제 실행 코드에서 편집했기 때문에 거기에 있습니다. 스프레드 시트에서 스프레드 시트로 셀 형식을 옮기는데 문제가 있다는 것을 제외하고는 명명 된 범위 문제와 관련이 없다고 생각합니다. –