Файли Excel: книга — це ZIP із XML, а в PDF таблиць немає взагалі
Що насправді містить XLSX, чому дістати таблицю з PDF — це висновок, а не витягування, і які клітинки стають числами. Конвертуйте у браузері, без завантаження.
Коротко
- Тип
- Документи
- Розширення
- .xlsx
- MIME-тип
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- Також відомий як
- XLSX, Microsoft Excel, spreadsheet
Файл .xlsx — це архів ZIP із XML, та сама конструкція, що й .docx, описаний на сторінці про Word, і частина того самого переходу на Office Open XML 2007 року. Перейменуйте його на .zip, і знайдете частину книги з переліком аркушів, по одній частині на аркуш із клітинками, частину стилів і файли зв’язків, що поєднують усе це. Оскільки це XML у ZIP, книгу можна записати без жодного коду Microsoft, і саме так робить цей сайт — п’ять частин XML генеруються напряму, без додавання бібліотеки електронних таблиць у збірку. Текст клітинок записується як вбудований рядок, тож кожен аркуш самодостатній, а межі — власні межі Excel: 1 048 576 рядків, 16 384 стовпці, 255 аркушів.
Докладніше
Уся складність — на іншому боці. PDF не має таблиць. Він має послідовності гліфів, кожну зі своїм положенням, а лінії, які ви бачите, — це не пов’язані з ними операції малювання: ніщо у файлі не записує, що клітинка існує, а тим паче який текст їй належить. Тож сітку доводиться виводити з геометрії, і саме це насправді робить кожен інструмент такого роду, зокрема й платні.
Висновок робиться у два кроки. Рядки визначаються спільними базовими лініями — це надійна половина, бо саме так сторінку й набирали. Стовпці визначаються горизонтальними проміжками, що перекриваються, і смуга має повторитися в кількох рядках, перш ніж вважатися стовпцем, — повторюваність відрізняє справжній стовпець від абзацу, який просто має відступ. Самі лише ліві краї не працюють, і це варто зафіксувати, бо це очевидна перша реалізація, і вона ламається на найзвичайнішій таблиці: стовпець кількості з вирівнюванням праворуч, що містить 6, 96 і 240, має три різні ліві краї, кожен на цифру зсунутий, тож стовпець розпадається, і в кожному рядку з’являється зайва порожня клітинка. Перекриття справляється з вирівнюванням ліворуч, праворуч і по центру, не знаючи, з яким саме має справу.
Те, що потрапляє в клітинку як число, навмисно консервативне: прості десяткові числа, можливо зі знаком, і нічого більше. 007, 1,234, 2026-09-10, +44 20 і будь-що із символом валюти лишаються точно такими, якими були, бо нуль на початку, роздільник тисяч і дата — це інформація, яку примусове перетворення знищило б. Десяткові знаки зберігаються, тож 48.50 приходить як 48.50, а не 48.5. Обмеження названо на сторінці, а не приховано: об’єднані клітинки потрапляють у перший стовпець, який охоплюють, клітинка, текст якої переноситься на два рядки, стає двома рядками, на кожну сторінку створюється один аркуш, а сторінка без повторюваної структури стовпців повертається як один стовпець рядків — і це чесна відповідь для прози.
Конвертувати інші формати в Excel
Запитання про Excel
Чи XLSX справді є файлом ZIP?
Так, точно як DOCX. Перейменуйте його на .zip і відкрийте: усередині частини XML для книги, для кожного аркуша, для стилів і зв’язки між ними.
Чи справді підсумовуватимуться числа?
Так, для клітинок із простими десятковими числами — вони записуються як числа, тож SUM та інші функції з ними працюють. Усе неоднозначне навмисно лишається текстом, а текст не підсумовується.
Чому мій номер 007 прийшов як текст?
Бо нуль на початку — це інформація. Збереження як числа перетворило б його на 7, і повернути це було б неможливо, тож значення, які лише схожі на числа, лишаються точно такими, якими були.
Моя таблиця втратила межі стовпців. Чому?
Стовпці розпізнаються за проміжками клітинок, що перекриваються й повторюються вниз по сторінці. Таблиця лише з одним-двома рядками або з нерегулярно розміщеними клітинками не дає висновку, за що зачепитися, і повертається як рядки тексту.
Чи працює це зі сканованим PDF?
Ні, і він відмовляється, а не вгадує. Розпізнавання повертає один рядок тексту на кожну знайдену рамку, чого досить, щоб відтворити прозу, але не сітку, — рамки досить часто зливають сусідні клітинки, тож результат виглядав би як таблиця й був би хибним.
Чи можна тут конвертувати Excel у PDF?
Не локально. Щоб відобразити книгу так, як це робить Excel, — розриви сторінок, області друку, ширину стовпців, — потрібен Excel або LibreOffice, а жоден не працює у вкладці браузера. Конвертації тут ідуть у XLSX, а не з нього.