본문 바로가기
개발/에러해결

ValueError: This sheet is too large! Your sheet size is: 1055241, 5 Max sheet size is: 1048576, 16384 (엑셀 행 제한 해결)

by amkorousagi 2022. 12. 20.

에러 내용


ValueError : This sheet is too large! Your sheet size is: 1055241, 5 Max sheet size is: 1048576, 16384

ValueError
: This sheet is too large! Your sheet size is: 1055241, 5 Max sheet size is: 1048576, 16384

파이썬에서 pandas를 사용하여 엑셀을 저장하는 도중 위와 같은 오류가 출력되었다.

 

ValueError: seek of closed file

ValueError: seek of closed file

openpyxl에서도 위와 같은 오류가 출력된다.

에러 원인


엑셀(xlsx)은 1055241 (대략 백만 줄)까지의 행만 저장할 수 있는데 이를 초과하여 생기는 문제이다.

해결 방법


.xlsx 대신 .csv로 저장하면 해결된다.

csv 확장자로 저장하면 최대 1,999,999,997(약 20억) 개의 행을 다룰 수 있다.

 

단, 엑셀 프로그램 등으로는 해당 파일을 정상적으로 열거나 다룰 수 없다.

20억 개 되는 데이터를 엑셀 프로그램으로 일일이 수정하는 경우는 없기 때문에 문제 되지 않을 듯하다.

파이썬에서는 정상적으로 다룰 수 있다.

 

결과 화면


정상적으로 백만개 이상의 행을 가진 파일이 저장된 모습

 

참고 자료


 

Limit writing of pandas to_excel to 1 million rows per sheet

I have a dataFrame with around 28 millions rows (5 columns) and I'm struggling to write that to an excel, which is limited to 1,048,576 rows, I can't have that in more than one workbook so I'll nee...

stackoverflow.com

 

 

Data Model specification and limits - Microsoft Support

Caution:  Exceptions to the string limit apply to the following functions, where strings are limited to 2,097,152 Unicode characters: CONCATENATE and infix concatenation operator DATEVALUE EXACT FIND FORMAT LEFT LEN LOWER MID REPLACE REPT, restriction app

support.microsoft.com

 

댓글