대체로 잘 짜여진 프로그램의 많은 부분들의 한계는 대체로 메모리 한계로 주어지는 경우가 많다. 심지어 스와핑해가며 메모리 한계보다 더 많은 데이터를 처리할 수 있도록 해주는 프로그램들도 있다. 그래서 그랬는지 늘 그저 엑셀은 잘 만든 프로그램이니까 행의 개수나 셀에 들어간 글자수 따위에는 제한이 없을거야, 라는 생각을 많이 했었다. 최근에 회사에서 사용하는 엑셀 시트 생성 파이썬 스크립트의 문제를 수정하면서 나는 내 가설이 옳지 않다는 것을 알게 되었다. 생각보다 엑셀에는 제약이 많았다.
여기를 참조하면 MS에서 발표한 엑셀의 공식 한계치들을 알 수 있다. 별 대수롭지 않게 생각할 수 있는데 우리 시트가 깨지는 문제의 원인은 행의 개수때문이었다. 행 개수 제한이 대략 105만개인데 실제로 테스트 해 본 바에 의하면 이것보다 적은 데이터도 엑셀이 정상적으로 열지 못하는 경우가 있어서 100만개로 제한을 걸어두었다. 그 다음으로 다소 황당했던 제한은 셀에 포함될 수 있는 글자수다. 이는 32767개로 제한하고 있다. 그런데 지금 해당 페이지에서 보여주고 있는 제약 사항은 그마나 최신 엑셀 프로그램의 제약 사항들이다. 신뢰할 수 있는 자료인지는 모르겠으나 이 페이지를 보면 과거 버전은 더 많은 제약 사항을 가지고 있었던 것 같다.
사족: 대략 생성된 엑셀 파일은 80메가 정도 크기였다. 정상이라면 통상적으로 엑셀 실행 시에 데이터가 손상되었다는 메시지가 뜨는데, 테스트 과정 중에 이 메시지 만큼이나 자주 엑셀이 잘못된 연산으로 종료되는 것을 목격했다. 지구상에서 소프트웨어를 가장 잘 만드는 회사 중 하나인 MS 제품도 이 정도다. 소프트웨어 개발은 실제로는 우리가 생각하는 것보다 훨씬 어려운 것 같다.