2012-10-05 4 views
1

저는 Matlab 환경에서 왔습니다. 최근에는 파이썬을 배우려고합니다. Excel에서 읽기는 MATLAB이 COM 엑셀 구성 요소를 작성하여 통합 문서를 파생시킨 다음 시트화 한 다음 범위를 지정하여 더 중요한 일 중 하나입니다. 통합 문서에서 셀/범위에 이르기까지 유사한 접근법을 보게되어 기뻤습니다. Openpyxl 셀 값이 나오지 않습니다.

그래서

,

w = openpyxl.load_workbook('D:/ass.csv') 
s = w.get_sheet_by_name('Sheet1') 
c = s.cell('a2') 

마지막 : c.value은 나에게 값을 제공해야하고, c.value = 12는 값을 할당해야합니다. 둘 다 일어나지 않는 것 같습니다. 그러나 c.value = 12을 지정하면 c.value를 추가로 호출하면 12를 얻을 수 있지만 기본 CSV는 변경되지 않았습니다.

제가 s.get_highest_column()과 같은 것을 시도 할 때 올바른 예상 답변을 얻습니다. w.get_sheet_names()도 예상되는 응답을 제공합니다. 무엇이 잘못되었을 수 있는지에 대한 제안.

+1

시트를 저장하셨습니까? 그것은 중요한 단계입니다. 명시 적으로 통합 문서를 저장하지 않으면 변경 내용이 기본 파일에 반영되지 않습니다. –

+0

1) 시트의 데이터에 액세스하는 것이 작동하지 않았습니다. 2) w.save()를 수행했지만 여전히 효과가 없습니다. 말했듯이, w와 s 객체는 w.getsheetnames, s.gethighestcolumn처럼 체크 된 속성에서 올바르게 동작했지만 cell.value는 작동하지 않습니다. 사실, 셀 개체 속성이나 메서드가 작동하는지 궁금해. – user1131925

답변

0

은 Excel 2007 및 이후 형식에서만 작동하며 일반적으로 파일 확장자는 .xlsx 또는 .xlsm입니다.

.csv 형식을 읽으려면 CVS 모듈을 사용하십시오.

AFAIK .csv과 최신 .xls resp가 모두 열리는 Python 라이브러리가 없습니다. .xlsx 파일 이러한 유연성을 원한다면 Python의 COM을 사용하여 Excel과 인터페이스 할 수 있습니다. 나는 대부분 win32com.client을 사용하지만 아마도 comtypes.client을 사용할 수도 있습니다.

관련 문제