Предскан объединённых ячеек xlsx отдаёт expat каждую некаталожную запись zip: отбор «похоже на XML» по первым 64 байтам обходился листом в части без .xml с ведущими пробелами и без XML-декларации (1,9 КБ → > 3 с, у ревьюера 27 с / 1,4 ГБ). Части *.xml — строго, остальные — мягко (ошибка разбора лишь заканчивает скан части). После чтения любого формата число диапазонов листа площадью > MAX_INDEXED_AREA ограничено LARGE_MERGED_COUNT_LIMIT = 1000: Sheet.merged_span перебирает их линейно. README, design.md №39, дельта спеки. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2