xlsx 썸네일형 리스트형 엑셀에 긴 카드번호나 코드를 붙여넣었더니 뒷자리가 이상해졌다면, 서식 문제가 아닙니다 주문번호, 카드번호, 일련번호처럼 자릿수가 긴 값을 엑셀에 붙여넣었는데 1.23457E+18 같은 지수 표기로 바뀌고, 서식을 텍스트로 고쳐도 뒷자리 몇 개가 0으로 뭉개져 있는 걸 본 적 있으실 겁니다. "서식만 텍스트로 바꾸면 되겠지"라고 시도했다가 이미 늦었다는 걸 알게 되는 경우가 많습니다.실제로 19자리 숫자를 파이썬 openpyxl로 엑셀 파일에 저장해 보고, 그 값이 파일 안에 정확히 어떻게 남는지 xlsx 내부 XML을 직접 열어 확인해 봤습니다. 서식은 겉모습만 바꿉니다, 저장된 값 자체는 못 건드립니다1234567890123456789라는 19자리 값을 셀에 그대로 넣고 저장한 뒤,xlsx 압축을 풀어 시트 XML을 들여다봤습니다.1.234567890123457e+18지수 표기는 화면.. 더보기 엑셀 조건부 서식 규칙이 수백 개로 쪼개지는 이유, 200번 복사 붙여넣기를 직접 재현 후기 [홈] 탭의 [조건부 서식] → [규칙 관리]를 눌렀다가 화면 가득 늘어선 규칙 목록을 보고 놀란 적 있으신가요. 셀 몇 개에만 색을 입힌 기억밖에 없는데, 목록에는 비슷한 규칙이 수십, 수백 개씩 쌓여 있는 경우가 흔합니다.엑셀 용량이 갑자기 무거워지는 원인을 진단했던 글의 FAQ에서 이 질문에 짧게만 답한 적이 있는데, 이번엔 그 부분만 따로 떼어 실제로 확인해 봤습니다. 범인은 대개 복사 붙여넣기입니다. 규칙 하나를 다른 범위에 복사해 붙일 때마다, 엑셀은 기존 규칙을 넓히는 대신 새 규칙을 하나 더 만드는 방식으로 처리합니다. 이게 실제로 파일에 어떤 흔적을 남기는지, 같은 서식을 200번 나눠 붙인 상황을 직접 만들어 확인해 봤습니다. 같은 조건, 규칙 개수만 다르게 만들어 봤습니다2,000행 .. 더보기 엑셀 파일이 안 열릴 때, 손상된 건지 확장자만 다른 건지 구조로 구분하기 거래처에서 받은 xlsx 파일을 열었더니 "파일이 손상되어 열 수 없습니다" 창이 뜨는 상황, 다들 한 번쯤 겪어 보셨을 겁니다. 그런데 이 메시지가 뜨는 이유는 하나가 아닙니다. 진짜로 파일이 깨진 경우도 있고, 애초에 확장자만 xlsx일 뿐 안에 든 건 다른 문서인 경우도 있습니다.확장자를 바꾼다고 파일 내용까지 바뀌는 게 아니라는 이야기는 예전에 다룬 적이 있는데, 이번엔 그 반대 상황, 그러니까 확장자만 xlsx인 척하는 파일이 실제로 어떻게 걸러지는지를 봅니다. 두 경우를 실제로 만들어서, 각각 어떤 흔적을 남기는지 파이썬으로 직접 열어 비교해 봤습니다. 케이스 1. 진짜로 손상된 파일정상 xlsx 파일 하나를 만든 뒤, 파일 끝부분 500바이트를 잘라내 일부러 망가뜨렸습니다. zip은 파일 맨.. 더보기 엑셀에는 15%로 보이는데, 파이썬으로 읽으면 왜 0.15가 나올까 엑셀 파일을 파이썬으로 불러와 처리하는 스크립트를 짜다 보면, 분명 화면에서는 "15%"라고 보이던 셀이 코드에서는 0.15로 찍히는 순간을 마주치게 됩니다. 처음 보면 데이터가 잘못 읽힌 줄 알고 당황하기 쉽습니다.결론부터 말씀드리면 버그가 아닙니다. 퍼센트나 통화 기호, 날짜처럼 "보기 좋게 꾸며진 값"은 셀 안에 그렇게 저장되어 있지 않습니다. 실제로 어떻게 저장되는지 xlsx 내부를 열어 확인해 봤습니다. 세 가지 서식으로 직접 저장해 봤습니다퍼센트, 통화, 날짜 서식을 각각 지정한 셀을 openpyxl 3.1.5로 만들어 저장한 뒤, 압축을 풀어 xlsx 내부 XML을 직접 읽었습니다. 세 셀 모두 태그 안에는 순수한 숫자만 있습니다."%"도, "원"도, "-"도 파일 어디에도 문자로 적.. 더보기 행은 3천 개뿐인데 엑셀 파일이 3.4MB, 용량을 먹는 범인을 파일 안에서 찾아내기 엑셀 파일이 무거워지면 대개 데이터가 많아서라고 생각하게 됩니다. 하지만 실제로는 데이터 양과 파일 용량이 따로 노는 경우가 훨씬 흔합니다.3,000행짜리 주문 내역을 실제로 만들어 저장해 보니 130.1KB였습니다. 그런데 같은 데이터에 무엇을 얹느냐에 따라 이 파일은 1MB가 되기도 하고 3.4MB가 되기도 했습니다. 데이터는 한 줄도 늘지 않았는데 말입니다. 먼저, 엑셀 파일은 사실 압축 폴더입니다xlsx 파일은 하나의 덩어리가 아니라 여러 개의 파일을 ZIP으로 묶어 놓은 꾸러미입니다.시트의 셀 내용, 서식 정의, 삽입된 사진이 각각 다른 파일로 들어 있습니다. 그래서 지금 당장, 프로그램을 하나도 설치하지 않고 내 파일의 범인을 확인할 수 있습니다. 문제의 파일을 복사한 뒤 복사본의 확장자를 .. 더보기 이전 1 다음