Как уменьшить размер файла excel
Перейти к содержимому

Как уменьшить размер файла excel

  • автор:

Как сократить размер файла Excel с рисунками

Файлы Excel, помимо прочего, широко применяются для подготовки спецификаций и каталогов товаров и их последующей рассылки контрагентам. Вложенные в них графические элементы (фотографии товаров, чертежи, графики и пр.) сильно раздувают их размер, что затрудняет пересылку по почте (у кого-то каналы связи плохие, у кого-то установлены драконовские ограничения на максимальный размер почтового сообщения на серверах). При этом архивация этих файлов традиционными средствами — WinRAR’ом или 7zip’ом — помогает не сильно: и без того сжатые графические форматы ни в какую не желают сокращаться в размерах. Однако есть способ сжимать графику внутри файлов собственными средствами Excel. Приступим.

Для наглядности мы подготовили увесистый excel-файл. Он насчитывает с десяток фотографий и весит порядка 7 Мбайт:

how-to-compact-excel-with-graphics-01.png

Открываем его в Excel, выделяем любой рисунок, в меню сверху выбираем «Работа с рисунками — Формат», после чего нажимаем кнопку «Сжать рисунки»:

how-to-compact-excel-with-graphics-02.png

В появившимся окне убираем галочку «Применить только к этому рисунку» (мы же хотим сжать всю графику?) и выбираем качество вывода в зависимости от потребности. Уровень «Электронная почта» для нас представляется оптимальным:

how-to-compact-excel-with-graphics-03.png

Нажимаем «Ок», проверяем «читаемость» графики (чтобы она не выглядела хуже, чем была при исходных параметрах), сохраняем файл. И проверяем его размер:

how-to-compact-excel-with-graphics-04.png

Сжатие почти в 10 раз — это, кажется, успех! Осталось только разослать полученный файл контрагентам. Благо теперь для этого практически никаких препятствий нет.

Уменьшение размера файла Excel электронных таблиц

Если размер файла слишком велик, попробуйте сделать его более управляемым, следуя советам ниже.

Сохранение таблицы в двоичном формате (XSLB)

Чтобы уменьшить размер файла, можно сохранить таблицу в виде двоичной книги (XSLB), а не формата по умолчанию (XSLX). По умолчанию используется формат XML, что важно при использовании данных в сторонних программах, так как XML является открытым стандартом. Однако в большинстве целей двоичного формата достаточно и он сохраняется в файле меньшего формата.

  1. Перейдите в меню >параметры >Сохранить.
  2. В списке Сохранениефайлов в этом формате в списке Сохранить книги выберите Excel Двоичная книга.

Сохранение в двоичном формате

Этот параметр задает двоичный формат по умолчанию. Если вы хотите сохранить по умолчанию Excel книгу (.xlsx), но сохранить текущий файл как двоичный, выберите параметр в диалоговом окке Сохранить как.

Примечание: Если файл находится в SharePoint, возможно, вы не видите параметр Сохранить как. В этом случае вы можете сохранить копию на локальном диске, сохранить ее как двоичное, а затем заменить исходный файл новым двоичным.

  1. Перейдите в > сохранить как и, если файл сохраняется впервые, выберите расположение.
  2. В списке типов файлов выберите Excel Двоичная книга (XLSB).

Сохранение в Excel двоичной книги

Сохранение таблицы в двоичном формате (XSLB)

Чтобы уменьшить размер файла, можно сохранить таблицу в виде двоичной книги (XSLB), а не формата по умолчанию (XSLX). По умолчанию используется формат XML, что важно при использовании данных в сторонних программах, так как XML является открытым стандартом. Однако в большинстве целей двоичного формата достаточно и он сохраняется в файле меньшего формата.

  1. Перейдите в меню >параметры >Сохранить.
  2. В списке Сохранениефайлов в этом формате в списке Сохранить книги выберите Excel Двоичная книга.

Этот параметр задает двоичный формат по умолчанию.

Если вы хотите сохранить по умолчанию Excel книгу (.xlsx), но сохранить текущий файл как двоичный, выберите параметр в диалоговом окне Сохранить как:

  1. Выберите Файл >Сохранить как.
  2. В списке Тип файла выберите Excel двоичной книги (XLSB).

Уменьшение количества таблиц

Если у вас есть таблицы с данными, которые вы не используете и которые не содержат формул, удалите их из таблицы.

Чем больше точек данных в книге, тем больше размер файла. Если удалить неиспользование данных, размер файла уменьшится.

Сохранение изображений с более низким разрешением

  1. Откройте меню Файл, выберите раздел Параметры, а затем — Дополнительно.
  2. В области Размер и качество изображениясделайте следующее:
    • Выберите Отменить редактирование данных. Этот параметр удаляет хранимые данные, которые используются для восстановления исходного состояния изображения после его изменения. Обратите внимание, что если удалить данные редактирования, восстановить изображение будет нельзя.
    • Убедитесь, что не выбрано сжатие изображений в файле.
    • В списке Разрешение по умолчанию выберите разрешение 150ppi или более низкое. В большинстве случаев разрешение не должно быть выше.

Параметры размера и качества изображения

Сжатие рисунков

  1. Выберите рисунок в документе. На ленте появится вкладка Формат рисунка.
  2. На вкладке Формат рисунка в группе Настройка выберите Сжать рисунки.
  3. В области Параметры сжатиясделайте следующее:
    • Чтобы сжать все рисунки в файле, снимайте снимок Применить только к этому рисунку. Если этот параметр выбран, изменения, внесенные здесь, будут влиять только на выбранный рисунок.
    • Выберите Удалить обрезанные области рисунков. Этот параметр удаляет обрезанные данные рисунка, но вы не сможете их восстановить.
  4. В области Разрешениесделайте следующее:
    • Выберите Использовать разрешение по умолчанию.

Параметры сжатия рисунков

Не сохранения кэша данных с файлом

Если таблица содержит таблицу, можно уменьшить размер файла, не экономя кэш исходных данных в файле, а обновляя кэш данных при его открытие.

  1. Выберите любую ячейку в таблице.
  2. На вкладке Анализ таблицы в группе Таблица выберите Параметры.
  3. В диалоговом окне Параметры таблицы выберите вкладку Данные и сделайте следующее:
  4. Чтобы сохранить исходные данные с файлом, с помощью сохранения исходных данных с помощью сохранения.
  5. Выберите Обновить данные при открытии файла.

Как уменьшить размер файла

Данный вопрос возникает периодически на различных форумах. Решил написать некоторые рекомендации по уменьшению веса файла. Применив их Вы сможете понять — действительно ли Ваши данные настолько раздувают файл или же в файле имеется много лишнего.
Почему я это пишу. Бывают ситуации, когда в файле всего один лист, данных на нем на 1000 строк и 20 столбцов. Никаких формул, только значения. Но размер файла непомерно велик — скажем 10 Мб. Этого недопустимо. Или есть различные формулы, но Вы все равно считаете, что размер файла не соответствует тому, что должно бы быть.

Автоматически убрать все лишнее из файла так же поможет команда надстройки MulTEx Оптимизировать книгу

При этом описанные ниже причины, которые влияют на размер файла, так же могут влиять и на его «быстродействие».

Следующие действия необходимо проделать на каждом листе книги:

  • Первое, что необходимо вспомнить — а не в общем ли доступе файл ? Если в Общем, то есть вероятность, что размер файла растет именно из-за этого. Дело в том, что при установке общего доступа к файлу, по умолчанию ведется журнал изменений, в который записываются все действия, произведенные в книге каждым пользователем за период, указанный в параметрах. Чем больше пользователей — тем сильнее раздувается файл. Как избавиться или изменить период:
    Excel 2007 и выше : вкладка Рецензирование (Review)Доступ к книге (Shared workbook) ;
    Excel 2003 : СервисДоступ к книге.
    Переходим на вкладку Подробнее(Advanced) и выбираем Не хранить журнал изменений (don’t keep change history) .
    Еще лучше — снять общий доступ с книги, сохранить. Если общий доступ все еще нужен, то открываем книгу и опять даем общий доступ, но теперь устанавливаем кол-во дней, в течении которых надо хранить журнал. По умолчанию — 30, но можно сделать меньше, если файл сильно разбухает за озвученный период. Далее неплохо бы отключить оба пункта в разделе Включить в личное представление (Include in personal view) : параметры печати (Print settings) и фильтры (Filter settings) . Личные представления позволяют сохранять для каждого пользователя файла свои параметры печати и настройки фильтров. Чем больше разных пользователей – тем больше настроек сохраняется и тем выше вероятность замедления работы файла и увеличения его размеров. А практическая ценность этих пунктов в ущерб удобству и быстроте работы с файлом сомнительная.
    После этого сохранить файл.
    Подробнее про общий доступ можно прочитать в статье: Ведение журнала сделанных в книге изменений
  • Убедитесь, что лист не содержит ячеек без данных , но занимающих пространство. Перейдя на лист, нажмите Ctrl + End . Активируется последняя ячейка листа. Если она расположена ниже или правее последних нужных рабочих данных — то удалите все строки и столбцы после последних данных таблицы. Удалите полностью строки. Сделать это быстро можно так. Нажимаем Ctrl + End и попадаем на последнюю ячейку. Выделяем эту строку и нажимаем Ctrl + Shift +стрелка Вверх. Выделились все строки вместе с последней строкой данных. Удерживая Shift жмем на клавиатуре стрелку Вниз. Тоже самое и со столбцами.

Иногда для того, чтобы Excel увидел эти изменения(и ползунок прокрутки вел на реально последнюю ячейку) — надо сохранить книгу, а порой и вообще сохранить -закрыть -открыть заново. Или выполнить вот такой код VBA:

Sub ReInitUsedrange() On Error Resume Next With ActiveSheet.UsedRange: End With End Sub

Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA( Alt + F11 ) —InsertModule. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt + F8 -выделяем ReInitUsedrangeВыполнить (Run) .

Sub All_Cells_In_All_Sheets_To_Value() Dim wsSh As Object For Each wsSh In Sheets wsSh.UsedRange.Value = wsSh.UsedRange.Value Next wsSh End Sub
Sub All_Names_Visible() Dim objName As Object, wsSh As Object For Each objName In ActiveWorkbook.Names objName.Visible = True Next objName For Each wsSh In Sheets For Each objName In wsSh.Names objName.Visible = True Next objName Next wsSh End Sub

Данный код используется как и все приведенные выше. Он отображает все имена на листе и в книге. После выполнения макроса необходимо повторно нажать сочетание клавиш Ctrl + F3 на листе для вызова диспетчера имен. Теперь можно удалить все не нужные имена. Так же все имена можно сразу удалить при помощи следующего кода:

Sub Delete_All_Names() Dim objName As Object, wsSh As Object On Error Resume Next For Each objName In ActiveWorkbook.Names objName.Delete Next objName For Each wsSh In Sheets For Each objName In wsSh.Names objName.Delete Next objName Next wsSh End Sub

Как уменьшить размер файла и ускорить его

Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам — возможно один или несколько из них укоротят вашего «переростка» до вменяемых размеров и разгонят его «тормоза» 🙂

Проблема 1. Используемый диапазон листа больше, чем нужно

  1. Выделите первую пустую строку под вашей таблицей
  2. Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
  3. Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows) .
  4. Повторите то же самое со столбцами.
  5. Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а «в пустоту» ниже и/или правее.
  6. Сохраните файл (обязательно, иначе изменения не вступят в силу!)

Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.

Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB

Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов — XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)

Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и — ваши файлы:

  • XLSX — по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
  • XLSM — то же самое, но с поддержкой макросов.
  • XLSB — двоичный формат, т.е. по сути — что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер — минимален.

Проблема 3. Избыточное форматирование

Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.

Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить — Очистить форматы (Clear — Clear Formats) на вкладке Главная (Home) :

Особенно «загружают» файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств — кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting) :

reduce_size9.png

Она мгновенно удаляет все излишнее форматирование до конца листа, оставляя его только внутри ваших таблиц и никак не повреждая ваши данные. Причем может это сделать даже для всех листов книги сразу.

Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик — Надстройки COM (Developer — COM Addins) .

Проблема 4. Ненужные макросы и формы на VBA

Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:

  1. нажмите Alt+F11, чтобы войти в редактор Visual Basic
  2. найдите окно Project Explorer’а (если его не видно, то выберите в меню View — Project Explorer)
  3. удалите все модули и все формы (правой кнопкой мыши — Remove — дальше в окне с вопросом о экспорте перед удалением — No):

Также код может содержаться в модулях листов — проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов — все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.

Проблема 5. Именованные диапазоны

Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas) :

Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) — они вам точно не пригодятся.

Проблема 6. Фотографии высокого разрешения и невидимые автофигуры

Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format) :

Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane) .

Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:

Sub Delete_All_Pictures() 'макрос для удаления всех картинок на текущем листе Dim objPic As Shape For Each objPic In ActiveSheet.Shapes objPic.Delete Next objPic End Sub

Проблема 7. Исходные данные сводных таблиц

По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) — вкладка Данные (Data) — снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):

Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:

В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную — на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard) :

Проблема 8. Журнал изменений (логи) в файле с общим доступом

Если в вашем файле включен общий доступ на вкладке Рецензирование — Доступ к книге (Review — Share Workbook) , то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.

Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:

reduce_size8.png

Проблема 9. Много мусорных стилей

Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку «Слишком много форматов ячеек». Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home — Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо — и для размера вашего файла Excel и для его быстродействия.

too-many-formats2.png

Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.

Проблема 10. Много примечаний

Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке ГлавнаяОчистить — Очистить примечания (Home — Clear — Clear Comments) .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *