2016-06-06 4 views
0

이미 데이터가있는 경우 마지막 열 + 2에 워크 시트에 쓰는 응용 프로그램이 있으며 워크 시트가 비어 있으면 마지막 열 +1에 응용 프로그램이 있습니다. 나는 다음과 같이 내가 생각하는 빈 워크 시트입니다 얻을 : 나는 sheet.max_rowsheet.max_column 할 때openpyxl에서 워크 시트가 비어 있는지 확인

from openpyxl.workbook.workbook import Workbook 
book = Workbook() 
sheet = book.active 

, 나는 두 속성에 대한 1 얻을. 다음 나는 제로를 좀하고 싶습니다, 그래서 내가 할 : 셀의 값을 확인하는 데

if sheet.max_row == 1 and sheet.max_column == 1 and not sheet['A1'].value: 
    start_col = 1 
else: 
    start_col = sheet.max_column + 2 

는 오류가 발생하기 쉬운 말할 것도없고, 조금 잔인한 것 같다.

if sheet.max_column == 0: 
    start_col = 1 
else: 
    start_col = sheet.max_column + 2 

이유 max_row가되고 max_column 항상 >= 1입니다 : 내가 처음 일에 다음과 같은 기대? 이것은 버그, 의도적 인 기능 또는 다른 것의 합리적인 부작용입니까? 마지막으로 해결 방법이 있습니까 (예 : sheet.isempty()). https://bitbucket.org/openpyxl/openpyxl/issues/514/cell-max_row-reports-higher-than-actual#comment-21091771 : 빈 셀에

행이 여전히 행되는 버그 추적기를 검색하는 동안 그런데

, 나는 다음과 같은 코멘트를 발견했다. 그들은 미래의 사용이나 다른 것들을 위해 포맷 될 수도 있습니다. 2.3은 경험적으로 약간 개선되었지만 여전히 빈 셀의 행을 포함합니다.

이 (그리고 내가 더 이상 링크를 찾을 수없는 또 다른 코멘트) 첫 번째 셀이 실제로 존재한다고 믿게합니다. 이 경우 기능 요청을 제출할 가치가 있습니까?

답변

2

워크 시트가 "비어 있는지"를 확인하는 유일한 확실한 방법은 _cells 속성을 보는 것입니다. 그러나 이는 내부 API의 일부이며 변경 될 수 있습니다. 사실 변화가 거의 확실합니다.

max_rowmax_column 속성은 카운터에 대해 내부적으로 사용되며 1 이상이어야합니다.

관련 코드 및 테스트가없는 기능 요청은 거부되며 일반적으로 "빈"워크 시트 아이디어에 대해서는 상당히 회의적입니다.

관련 문제