Возник следующий вопрос. Отличаются ли форматы экселя *.xlsx и *.xlsb по каким нить техническим характеристикам? То есть есть ли в формате *.xlsb какие нить функциональные ограничения?
день добрый, скажу только то, что сам заметил - в xlsx нельзя хранить макросы, в xlsb - можно. xlsb использует двоичную систему для хранения данных. для сравнения откройте в архиваторе xlsx и xlsb. Плюс - меньше весит. Минус нельзя считать файл в других средах программирования (delphi, R, python и т.д)
Данный вопрос уже обсуждался на этом форуме: ссылка
Самый полезный ответ по этому вопросу:
Цитата
Так как звучали разные мнения, то на всякий случай отмечу, что бинарный формат файла XLSB - полноценный, то есть в нем можно смело делать все, что дозволено для XLSX и XLSM.
Более того, при больших объемах данных загрузка и пересчет XLSB может быть в несколько раз быстрее, чем XLSX и XLSM. Это связано с тем, что данные XLSX и XLSM файлов представлены в объемном текстовом виде с XML-разметкой. При загрузке и пересчете Excel перекодирует такой текст в родной для него бинарный формат. А XLSB конвертировать почти не нужно.
Но следствием преимущества XLSB формата является его недостаток, а именно то, что этот формат закрытый, т.е. официально не описан, хотя ссылку на неофициальное описание я уже давал: http://www.codeproject.com/KB/cs/office2007bin.aspx
XML-документы файлов XLSX и XLSM легко корректируется даже текстовым редактором, в XLSB файле большая часть выполнена в не редактируемом бинарном формате, что является некоторым ограничением. XML-документы (XLSX,XLSM) облегчают обмен данными между различными приложениями и перспективны для Web-приложений. Начальное представление о XML можно получить, например, здесь: http://ru.wikipedia.org/wiki/XML.
От себя приведу результаты тестов по размеру файлов: (ПК: Windows 7, 2Gb RAM)
Файл "BASE2013" - 450 759 строк, 24 ячейки в cтроке, формат: числа, даты, текст Результат сохранения: (см. скрин) xlsx: 65 258 Кб (100%) - открывается 45 секунд xls: 20 138 Кб (31%) - (влезло только 65536 строк из 450759) xlsb: 9 744 Кб (15%) - открывается 8 секунд
Файл "БАЗА" - в 3 раза больше данных (за 3 года) формат данных тот же. Результат сохранения: xlsx: 167 876 Кб (100%) xls: 65 345 Кб (39%) (влезло только 65536 строк) xlsb: 34 292 Кб (20%)
PS: Разница в размере файлов - очень существенна, "xlsb" в 5-7 раз меньше чем "xlsx"(см. скрин)
Что касается сжатия, "xlsb" как я понял уже сжат самим офисом (см второй скрин) xlsx: 167 876 Кб (100%) -> 108 109 Кб rar (64%) xls: 65 345 Кб (39%) -> 7 083 Кб rar (4%) (в файле только 65536 строк) xlsb: 34 292 Кб (20%) -> 31 348 Кб rar (18%)
При формировании запроса из Power Query к файлу с базой в формате xlsb возникает ошибка, которую я побороть не смог. При пересохранении того же файла в формат xlsx проблем при формировании запросов нет.
vector1 написал: Power Query к файлу с базой в формате xlsb возникает ошибка
Тут проблема не сколько формата, сколько коннектора, который использует PQ при подключении к xlsb.
Зато если таблица в более-менее удобоваримом формате, то в модель данных её можно загнать и при помощи стандартного мастера "Из других источников" в Power Pivot. Но вот если нужно собрать отчет из кучи однотипных файлов при помощи PQ, то с двоичными источниками будет, конечно беда.
Подскажите, а есть ли какие-то подвижки к тому, чтобы PQ мог нормально работать с XLSB? Просто странно, ему создают коннекторы к практически любой базе данных а родной формат (менее распространён), никак не может нормально съесть.