Как ускорить открытие большого файла excel

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

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

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

Если ваша таблица занимает 5 на 5 ячеек, то это отнюдь не означает, что Excel запоминает при сохранении этого файла только 25 ячеек с данными. Если вы в прошлом использовали какие-либо ячейки на этом листе, то они автоматически включаются в используемый диапазон (так называемый Used Range), который и запоминается при сохранении книги. Проблема в том, что при очистке используемых ячеек Excel далеко не всегда автоматически исключает их из используемого диапазона, т.е. начинает запоминать в файле больше данных, чем реально имеется. 

Проверить это просто – нажмите на клавиатуре сочетание клавиш Ctrl+End и посмотрите куда переместится активная ячейка. Если она прыгнет на фактическую последнюю ячейку с данными на листе – отлично. А если вдруг ускачет сильно правее и/или ниже «в пустоту» – дело плохо: все эти ненужные пустые ячейки Excel тоже запоминает внутри файла.

Лечится это, тем не менее, достаточно легко:

  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, но зато  размер — минимален.

Вывод: всегда и везде, где можно, переходите от старого формата XLS (возможно, доставшегося вам «по наследству» от предыдущих сотрудников) к новым форматам.

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

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

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

reduce_size5.gif

Особенно «загружают» файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях 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):

reduce_size4.gif

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

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

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

reduce_size3.gif

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

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

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

reduce_size1.gif

Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (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):

reduce_size2.gif

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

reduce_size6.gif

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

reduce_size7.gif

Проблема 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).

How’s your experience in working on a large Excel file in Windows 10, like ~10MB? In fact, accountants for example, are producing Excel files with much bigger size than 10MB. Some people noticed that large files are likely to cause a crash in Excel. Is the file size responsible for the crash? 

As a matter of fact, big file size is not the real culprit for the Excel crashing issue. It’s said that unstable, crashing, or freezing workbooks only tend to happen when your spreadsheets have grown to at least 20MB in size, given how much processing power modern computers have. Hence, you should consider other factors that crash Excel when the file you’re working on is far less than 20MB in size.

Why Large Excel Files Crash

Except for the fact that the excel file is really large over 20MB, chances are that there are other factors that make your Excel unsteady to use. The factors are basically as follows:

  • Formatting, styles, and shapes in a worksheet
  • Calculations and formulas in a worksheet
  • Computer’s RAM issue

How to Make Large Excel Files Work Faster Without Crash

Important
A large excel file usually contains hundreds of rows of critical data with many styles and formulas in it, so you must take good care of the workbook by making a real-time backup, in case one day unexpected data loss happens due to the Excel crash, not responding or stop working suddenly before you can click Save. We suggest everyone turn on auto save in Excel, to save the workbook every 1~5 minutes.

Next, we’re going to troubleshoot a slow workbook upon opening or editing in Excel around the discussed three factors. No matter it’s a small or big Excel file since it causes a crashing issue in Excel, the given solutions in each section should help.

Step 1. Remove Excessive Formatting

Formatting cells on your worksheet can make the right information easy to see at a glance, but formatting cells that aren’t being used (especially entire rows and columns) can cause your workbook’s file size to grow quickly. Microsoft has its own add-on called Clean Excess Cell Formatting, which is available on Excel’s Inquire tab in Microsoft Office 365 and Office Professional Plus 2013. If you don’t see the Inquire tab in Excel, do the following to enable the Inquire add-in:

  • Click File > Options > Add-Ins.
  • Make sure COM Add-ins is selected in the Manage box, and click Go.

clean excess cell formatting 1

  • In the COM Add-Ins box, check Inquire, and then click OK. The Inquire tab should now be visible in the ribbon.

To remove the excess formatting in the current worksheet, do the following:

  • On the Inquire tab, click Clean Excess Cell Formatting.

clean excess cell formatting 2

  • Choose whether to clean only the active worksheet or all worksheets. After excess formatting has been cleared, click Yes to save changes to the sheets or No to cancel.

Step 2. Remove Unused Styles

Too many different styles on an Excel workbook are likely to cause a specific error of «Too many different cell formats», and the alongside symptom is a constant crash in Excel. Hence, you should avoid using multiple styles on one worksheet. To clean up workbooks that already contain several styles, you can use one of the following third-party tools suggested by Microsoft.

  • Excel formats (xlsx, xlsm) — XLStyles Tool.
  • Binary Excel formats (xls, xlsb), workbooks protected by a password, and encrypted workbooks — Remove Styles Add-in.

Step 3. Remove Conditional Formatting

  • Under Home, click Conditional Formatting.
  • Choose Clear Rules.
  • Select Clear Rules from Entire Sheet
  • If multiple sheets adopt the rule, repeat the steps to clear them all

clear conditional formatting

Step 4. Remove Calculations and Formulas

If you’ve gone through the above three-step check and removable unnecessary cell formatting, styles, and conditional formatting, but still work clumsily on a large Excel workbook, you may need to look at the formulas and calculations in your worksheet. You don’t have to check every calculation and fomula you’ve applied in the file, but those primary ones tend to eat a lot of your computer’s resources.

  • Formulas that reference entire rows or columns
  • SUMIF, COUNTIF, and SUMPRODUCT
  • Large number of formulas
  • Volatile functions
  • Array formulas

Step 5. Examine the Computer RAM Issue

Last but not the least, if none of the four-step efforts speed up the performance in working on a large Excel file in Windows 10, it may be an issue with your computer’s memory. Follow the 10 tips on how to solve high RAM memory usage issue in Windows 10.

How to Repair Corrupted Large Excel Files Efficiently

What if Excel has crashed and corrupted the files? How can you fix damaged Excel in time? Try EaseUS Data Recovery Wizard. This advanced file repair tool resolves Excel file corruption and restores the .XLS/.XLSX file data. It fixes all types of Excel corruption errors, such as unrecognizable format, unreadable content, Excel runtime error, etc. 

With this file repair tool, you can:

  • Repair corrupted Excel with tables, images, charts, formulas, etc.
  • Repair multiple .XLS and .XLSX at one time
  • Fix damaged Excel files in 2019, 2016, 2013, 2010, 2007, 2003, and 2000

To repair a large Excel file that is inaccessible, follow the below guides. EaseUS file repair software also helps you repair corrupted Word, PowerPoint, and PDF documents. 

Step 1. Launch EaseUS Data Recovery Wizard, and then scan disk with corrupted documents. This software enables you to fix damaged Word, Excel, PPT, and PDF files in same steps. 

select the disk with corrupted documents

Step 2. EaseUS data recovery and repair tool will scan for all lost and corrupted files. You can find the target files by file type or type the file name in the search box. 

find corrupted documents

Step 3. EaseUS Data Recovery Wizard can repair your damaged documents automatically. After file preview, you can click «Recover» to save the repaired Word, Excel, and PDF document files to a safe location.

repair corrrupt documents

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

Тормоза программ пакета MS Office дело распространенное. Excel тормозит из-за целого ряда причин: неправильное использование функций программы (лишнее условное форматирование, сводные таблицы основанные на огромных массивах, лишние строки в документах). Excel тоже не идеален и тормоза происходят из-за не совершенства программной части (появляющиеся объекты, папка printerSettings в структуре). Поэтому рекомендуем вам пройтись по всем 10 шагам ниже и не останавливаться на одном.

Содержание

  • 1. Тормозит Excel? Нужно убрать форматирование в виде таблиц
  • 2. Убрать излишнее условное форматирование (если Excel тормозит при прокрутке)
  • 3. Удалить лишние строки/столбцы (если ползунок прокрутки очень маленький)
  • 4. Удалить лишние объекты
  • 5. Удалить лишние данные в структуре файла Excel
  • 6. Тормозит Excel — правильно настройте сводные таблицы
  • 7. Измените формат файла на .xlsb
  • 8. Установлен неопознанный принтер
  • 9. Удалите файл PERSONAL
  • 10. Замените много созданных формул макросами
  • 11. Уменьшите размер рисунков
  • 12. Перейдите на поздний Excel — 2013 или 2016
  • Похожие статьи

1. Тормозит Excel? Нужно убрать форматирование в виде таблиц

Иногда диапазон отформатирован в виде специальной таблицы (Верхняя панель — вкладка Вставка — Таблица), это может привести к тому, что сильно тормозит Excel файл, особенно если таблицы большие.

Чтобы определить такой формат, выделите любую ячейку таблицы. Появляется панель «Работа с таблицами» в верхнем меню, самая правая. Выберите всю таблицу, затем вкладку Работа с Таблицами, Конструктор — Раздел сервис — Преобразовать в диапазон.

Работа с таблицами

2. Убрать излишнее условное форматирование (если Excel тормозит при прокрутке)

Что такое условное форматирование, читайте здесь. Очень полезная штука, если правильно применять, если нет, то это заставит Ваш файл работать медленно.

Дело в том, что при копирование ячеек, копируется и форматирование —  если в файл постоянно копируются новая информация, то в ней сохраняются условия формата, в особенности условного форматирования.

Убираем так. Выбираете лист. Выберите нужный диапазон или весь лист. В верхней панели Главная — Условное форматирование — Удалить правила — Удалить правила из выделенных ячеек/с листа. Жмем.

3. Удалить лишние строки/столбцы (если ползунок прокрутки очень маленький)

Самая частая проблема для excel, с которой я встречаюсь. Если кто-то случайно переместился на конец листа (на строку номер 1 млн) и так сохранил книгу. Размер файла сразу увеличился. Дойти до конца таблицы можно и случайно, если нажать сочетание Ctrl + стрелка вниз или вправо. Бывает, что в конце книги находится какой-нибудь случайный символ или заливка.

Главный признак тормозов — это размер ползунка, он очень маленький, когда файл сохранен неверно, как на картинке.

тормозит Excel

Исправьте ситуацию, удалите лишние строки или столбцы. Найдите последнюю полезную ячейку для вас, выделите первую пустую ячейку после нее (а лучше первую пустую строку/столбец после нее), нажмите Ctrl+Shift+End. Такое сочетание клавиш выделяет ячейки ниже выбранной строки или правее выбранного столбца. Правая кнопка мыши – Удалить –  Удалить строку или столбец (как правило, проходит долго). После удаления выберите ячейку А1 и сохраните файл. Ползунок должен увеличиться.

4. Удалить лишние объекты

Очень часто, особенно при копировании из других файлов или сайтов в таблицах прячутся скрытые объекты — рисунки, фигуры и т.п.

Чтобы удалить такие объекты выполните макрос, нажмите Alt + F11 и копируйте текст ниже.

sub DelOb()
For Each i In ActiveSheet.Shapes
 i.Delete
 Next
end sub

Или выделите и  удалите объекты вручную. Перейдите в меню Главная — Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Теперь удаляйте.

5. Удалить лишние данные в структуре файла Excel

Даже опытные пользователи не знают, что файл Excel, как говорит Википедия, это файл-архив. Начиная с 2007 выпуска.

Т.е. файл Excel открывается, к примеру, архиваторами 7-zip или WinRar. Внутри открытого файла могут храниться ненужные файлы, что тормозит Excel порой в десятки раз.

Удалим неудобство? Сперва сделайте резервную копию файла :) Затем запустите 7-zip или другой архиватор, меню «Файл» — «Открыть внутри». Возможно открыть файл кликнув правой кнопкой мыши — Открыть с помощью и выбрав .exe файл WinRar или 7-zip.

Откроется архив, он же файл Excel c папками и файлам.

Находим папки «drawings» и/или «printerSettings» (скорее всего они будут в папке xl) и удаляем их.

Для WinRar делаем тоже самое.

Тормозит 2

После чего открываем книгу как файл Excel, он немного поругается, выведет несколько системных сообщений, что не находит данных и т.п. На все окна нажимаем ОК, файл восстановится.

Будьте внимательны, если в вашем файле есть нарисованные кнопки или другие фигуры, то удалять всю папку drawings — значит и удалять полезные фигуры.

Поэтому в папке удалите только файлы vmlDrawing.vml, они могут накапливать информацию и весить до 100 мб.

Тормозит

6. Тормозит Excel — правильно настройте сводные таблицы

Тормозит Excel 3

Если сводная таблица ссылается на большой диапазон ячеек от 10 тыс. строк, она хранит результаты расчетов, которые могут быть очень большими. От этого вся книга excel тормозит, конечно же. Чтобы устранить эту причину, нажмите на сводную таблицу правой кнопкой мыши — Параметры сводной таблицы — вкладка Данные — уберите галочку Сохранять исходные данные вместе с файлом.

Что позволит уменьшить файл почти в два раза.

7. Измените формат файла на .xlsb

Если вы работаете с огромными таблицами и ваши файлы больше 0,5 мб весом, то лучше сохранять такие книги в формате .xlsb. Двоичный формат книги Excel, т.е. специальный формат для создания «базы данных» на основе электронных таблиц. Если сохранить большой файл в таком формате, вес книги уменьшится в два-три раза. Расчеты в файл тоже будут проходить быстрее, в некоторых случаях в 2 раза быстрее.

8. Установлен неопознанный принтер

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

Бывает что даже при удалении настроек принтера из пункта 5 настройки принтера тормозят файл.

9. Удалите файл PERSONAL

Зайдите в …Application DataMicrosoftExcelXLSTART или …Microsoft OfficeOffice12 найдите в этих папках файл под название PERSONAL и удалите его. Подробнее читайте здесь.

10. Замените много созданных формул макросами

Часто матрица 10 000 строк на 10 столбцов со сложными формулами ссылающимися на другие листы, хуже книги, жутко тормозит файл. Попробуйте формульные расчеты заменить на записанные макрорекордером макросы, переводящий формулы в скопированные как значения числа или текст. Это поможет, если с файлом производится много действий, а значит файл часто пересчитывается. Сам недавно попробовал — помогло. Пишите в комментариях, если нужна помощь.

11. Уменьшите размер рисунков

Самый простой способ для версии 2007 и выше — выбрать рисунок, на верхней панели появиться вкладка Работа с рисунками — Формат.

Найдите раздел Изменить и выберите действия по сжатию рисунка, подробнее читайте здесь.

12. Перейдите на поздний Excel — 2013 или 2016

Разработчики нашего любимого редактора действительно не останавливаются в развитии продукта. Проведя ряд экспериментов, я выявил, что большинство сложных операций, таких как расчет ячеек, выполнение макроса, сохранение и другие, в версии 2016 выполняются быстрее ~на 15% от 2007.

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

Так что еще один хороший способ ускорить работу в Excel — перейти на MS Office 2013 и выше.

Теперь попробуйте сами.

Если эти 12 шагов не помогли, то лучше перенесите или скопируйте всю информацию в новый файл. Возможно поврежден сам файл.

Логичное продолжение статьи — оптимизация ресурсов компьютера под использование Excel — читайте в статье.

Если ничего не помогает пишите комментарии, постараемся помочь.

В этой Excel команды мы постоянно работаем над улучшением Excel производительности и стабильности. Мы постоянно ищем отзывы клиентов о том, что мы можем сделать, чтобы улучшить продукт, и внедряем положительные предложения по возможности. На самом деле многие улучшения, которые мы в последнее время внося, были прямым ответом на потребности клиентов. Например, мы обнаружили, что при обновлении с Office 2010 до более новой версии многие пользователи с большим количеством Excel, которые были меньше, чем Excel производительности.

Мы прислушались к мнению, и группа была настроена на решение тех областей, в которых мы могли бы обеспечить наиболее существенные улучшения производительности и обеспечить их в самый короткий срок. Например:

  • Мы вновь значительно улучшили производительность агрегатных функций (СУММЕ ЕСЛИМН, СЧЁТЕ ЕСЛИМН, СРРЕГЕ ЕСЛИМН и т. д.), RealtimeData (ДРВ) и значительно увеличат время вычислений.

  • Мы значительно улучшили производительность функций В ФУНКЦИИ ВЛИО, ГВП и НАЙТИПОЗ, что также привело к существенному снижению времени вычислений, а для Microsoft 365 клиентов функции ПРОСМОТРX и XMATCH обеспечивают большую гибкость и еще больше производительности.

  • Мы улучшили выделение памяти Excel с помощью больших адресных адресов Excel,увеличенной скоростью копирования и вклеивания, отменой, условным форматированием, редактированием и выделением ячеок, прокрутки, фильтрации, открытия файла и программируемости.

  • Мы переинструировали Excel с выпуском функций динамического массива,которые заменяют функции массива Excel CTRL+SHIFT+ВВОД (CSE). Эти функции добавляют возможности для Excel, которые трудно было достичь в более ранних версиях Excel. Например, теперь можно сортировать и фильтровать список с формулами, а не делать это вручную.

Чтобы продолжить работу с темой производительности, в этой статье перечислены несколько советов по Excel производительности.

Советы по производительности при определенных обстоятельствах  

Обстоятельство

Совет

Общая замедление при редактировании в сетке или при переключении между таблицами

Отключение анимации Office

Замедление при перемещении Excel окна или использовании клавиш ALT+сочетания клавиш после обновления до Windows 10

Отключение визуальных эффектов

Общая замедление на компьютере без выделенного графического процессора или старой графической карточки или драйвера

Отключение аппаратного ускорения изображения

Замедление при редактировании одной ячейки за другой

Отключение вспышки заполнения

Замедление при использовании нескольких мониторов с высоким разрешением с учетом динамической высокой четкости Office функциональных возможностей.

За Office совместимости установите для режима совместимости режим Optimize for compatibility (Оптимизация для совместимости).

Части Excel могут быть белыми или серыми при запуске кода VBA

Использование свойства ScreenUpdating и команды DoEvents в коде VBA

Неотвечаемость или высокий ЦП на Windows 10, когда открыто много Excel и Диспетчер фоновых приложений периодически выполняет фоновую проверку

Установите этот реестр в Windows 10 версии 17763.832 или более поздней, чтобы отключить сканирование.

Замедление нажатия клавиш ALT и сочетания клавиш в Excel

В Office 365 версии 1908 илиболее поздней версии добавьте этот реестр.

Замедление при Excel запуске

Откройте Excel в Сейф, чтобы узнать, вызвана ли замедление надстройки

Проблемы с открытием нескольких книг из-за потери памяти

Открытие Excel в новом экземпляре

Power Query загружается в запрос на таблицу слишком долго.

Изменение свойств Параметры запроса

Power Query слишком долго добавляет запрос к просмотру данных в редакторе Power Query.

Управление предварительным просмотром данных

Путь к реестру

Новые значения ключа

HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerBamThrottling

Имя: DisableWindowHinting
Тип: REG_DWORD
Значение: 1

HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0Common

Имя: UseAsyncRibbonKeytips
Тип: REG_DWORD
Значение: 1

Ссылки на популярные темы

Subject

Описание

Внутренние улучшения производительности формул

Ознакомьтесь с Excel о последних улучшениях производительности группы.

Улучшения выделения памяти с помощью функции «Большое внимание к адресам» (LAA)

Excel теперь можно использовать больше системной памяти, чем когда-либо раньше, даже с 32-Office.

Повышение производительности вычислений

Узнайте о способах более интеллектуальной работы с формулами и способах их вычисления.

Повышение производительности и ограничения

Это общее резюме некоторых последних улучшений.

Лучшие методики кода VBA

Советы и рекомендации по оптимизации кода VBA от Excel группы.

Общие проблемы с производительностью надстроек Office и макросах в Office

Если вы создаете макрос или Office надстройки, просмотрите эту статью.

Советы для оптимизации безлимитности производительности

Дополнительные советы по повышению Excel вычислений, в том числе о пользовательских функциях (UDF) для VBA.

Сравнение пользовательских и нескольких интерфейсов документов в Excel 2010 и более поздних версиях

В Excel 2013 и более поздних версиях каждая Excel может содержать только одну книгу, в каждой из которых есть собственная лента. Он называется единым интерфейсом документов (SDI). По умолчанию новая книга будет отображаться в другом окне Excel, хотя она и Excel экземпляре.

Получите последние обновления и дайте нам знать, что вы думаете

  • Если вы хотите получать последние обновления для Excel, вы можете присоединиться к программе Office программы.

  • Чтобы отправить отзыв, в правом верхнем углу области Excel кнопка Смайлик. Обязательно разоставьте в своих комментариях термин ExcelPERF, чтобы мы могли следить за ним.

  • Задайте вопрос в Excel Tech Community. Это динамичное сообщество Excel, которые ждут ответов на ваши вопросы. Мы также пассивно отслеживаем форумы, чтобы отслеживать все новые тенденции и проблемы.

  • Если вам требуется какая-либо возможность, отправьте свой отзыв, чтобы помочь нам определить приоритеты новых функций для будущих обновлений. Дополнительные сведения см. в статье Как оставить отзыв по Microsoft Office?

Нужна дополнительная помощь?

Работа с большими файлами экселя

Что такое большой файл? Ну так чтобы реально большой? В бытность свою я думал, что это файлик на 50-60 тыс строк записей. И оставался я бы в таком неведении до сих пор, но пришлось выполнять один проект, в котором надо было работать с файлами на 600-800 тыс строк. Хождение по мукам — под катом:

Что сначала

А сначала, друзья мои, ринулись мы в самое простое, что можно придумать. Interop.Excell, и все дела. Казалось. Ага, щаз. Как показали тестовые испытания, данный способ открытия приводил к тому, что за час было прочитано 200 тыс строк экселя, приложение активно потребляло оперативку, и раздвигало плечами остальные процессы на машине. Кончилось все ожидаемо, но следственный эксперимент надо было довести до конца — на 260 тысячах приложение свалилось в OutOfMemory на машине с 4 Гб. Стало понятно, что в лоб решить проблему не получится

Google it

Сколько нам открытий чудных… Гугль привел, как ни странно, в msdn, где я познакомился с двумя методами открытия очень больших файлов: DOM и SAX. Уж за давностью времен не вспомню, но какой то из них отвалился по причине опостылевшей уже на тот момент OutOfMemory, а второй был совершенно неюзабелен в плане доступа к данным. Почему — читаем ниже.

Из чего же, из чего же

Сделаны наши эксельки. Ни для кого, кто решил копнуть формат чуть глубже, не станет секретом, что в отличие от бинарным xls, xlsx — по сути zip архив с данными. Достаточно поменять расширение ручками и распаковать архив в папку — и мы получим всю внутреннюю структуру документа, что есть не что иное, как набор xml файлов и сопутствующей информации. Как оказалось, в корневом xml нет текстовых данных. Вместо этого мы имеем набор индексов, которые ссылаются на вспомогательный файл, в котором представлены пары «ключ/значение» Одним из вышеприведенных способов открыть то файл можно, но при этом нужно копаться в сопутствующих файлах и вытаскивать из них текстовые значения. Мрак.

И отступила тьма

После долгих мытарств и стенаний родилось следующее:

Наши любимые юзинги, которые некоторые личности забывают указывать:

using System;
using System.Collections. Generic ;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

* This source code was highlighted with Source Code Highlighter .

Собственно, сам код:

public delegate void MessageHave( string message);

public delegate void _DataLoaded( List < string > data);

public delegate void _NewProcent( int col);

public static _DataLoaded DataLoaded;

public static _NewProcent NewProcent;

public static MessageHave MessageHave_Event;

public static void ReadData( object data)
//Приводим объект с переданной парой «имя файла»-«выбранный лист экселя»
var keyValuePair = (KeyValuePair< string , string >)data;
using ( var cnn = new OleDbConnection( @»Provider=Microsoft.ACE.OLEDB.12.0;Data Source #A31515″>@»;Extended Properties #A31515″>»Excel 12.0;HDR=No;IMEX=1″ «» )
)
int calc = 1000;
MessageHave_Event( «Открытие соединения провайдера» );
cnn.Open();
try
var cmd = new OleDbCommand( String .Format( «select * from []» , keyValuePair.Value), cnn);
using (OleDbDataReader dr = cmd.ExecuteReader())
var lines = new List < string >();
int > if (dr != null )
while (dr.Read())
string text = «» ;
for ( int i = 0; i < dr.FieldCount; ++i)
if (dr[i] != null )
text += dr[i] + «^» ; //добавляем разделитель между ячейками
else
text += «^» ;
>
lines.Add(text);

id++;
if (id == calc)
NewProcent(id);
calc += 1000;
>
>
DataLoaded(lines);
>
cnn.Close();
>
catch (Exception ex)
MessageHave_Event( «Exception: » + ex.Message);
cnn.Close();
>
>
>

* This source code was highlighted with Source Code Highlighter .

Код показал производительность порядка 15-20 минут на файлах в 600-800 тыс строк записей.

Если кому то реализация покажется кривой — сильно не пинать 🙂 Выслушаю все комментарии

У меня есть 150MB один лист excel файл, который занимает около 7 минут, чтобы открыть на очень мощной машине, используя следующее:

есть ли способ открыть файл excel быстрее? Я открыт даже для очень диковинных предложений (таких как hadoop, spark, c, java и т. д.). В идеале я ищу способ открыть файл менее чем за 30 секунд, если это не мечта. Кроме того, приведенный выше пример использует python, но это не должно быть питон.

Примечание: это файл Excel от клиента. Он не может быть преобразован в любой другой формат, прежде чем мы получим его. Это не наш файл

обновление: ответ с рабочим примером кода, который откроет следующий файл excel 200MB менее чем за 30 секунд будет вознагражден щедростью:https://drive.google.com/file/d/0B_CXvCTOo7_2VW9id2VXRWZrbzQ/view?usp=sharing. Этот файл должен иметь строку (col 1), дата (col 9) и номер (col 11).

12 ответов

Ну, если ваш excel будет таким же простым, как CSV-файл, как ваш пример (https://drive.google.com/file/d/0B_CXvCTOo7_2UVZxbnpRaEVnaFk/view?usp=sharing), Вы можете попробовать открыть файл как zip-файл и прочитать непосредственно каждый xml:

Intel i5 4460, 12 ГБ оперативной памяти, SSD Samsung EVO PRO.

если у вас много памяти ОЗУ: Этот код требует много ОЗУ, но это занимает 20

25 секунд. (Вам нужен параметр — Xmx7g)

старый ответ (не нужен параметр Xms7g, поэтому возьмите меньше памяти): Требуется открыть и прочитать пример файла около 35 секунд (200 МБ) с HDD, с SDD занимает немного меньше (30 секунд).

большинство языков программирования, работающих с продуктами Office, имеют некоторый средний уровень, и обычно это узкое место, хорошим примером является использование PIA / Interop или Open XML SDK.

один из способов получить данные на более низком уровне (минуя средний уровень) — использовать драйвер.

150MB один лист excel файл, который занимает около 7 минут.

лучшее, что я мог сделать, это файл 130 МБ за 135 секунд, примерно 3 раза быстрее:

Я побежал программа в трехлетнем ноутбуке с SSD-накопителем, 8GB оперативной памяти и Intel Core i7-4710 CPU @ 2.50 GHz (два ядра) на Windows 10 64 бит.

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

трюк состоял в том, чтобы использовать подход SAX как объясняется здесь:

библиотека панд Python может использоваться для хранения и обработки ваших данных, но с ее помощью можно напрямую загрузить .xlsx файл будет довольно медленным, например, с помощью read_excel() .

одним из подходов было бы использовать Python для автоматизации преобразования вашего файла в CSV с помощью самого Excel, а затем использовать Pandas для загрузки результирующего CSV-файла с помощью read_csv() . Это даст вам хорошую скорость, но не менее 30 секунды:

типы столбцов
Типы для ваших столбцов можно указать, передав dtype и converters и parse_dates :

вы также должны указать infer_datetime_format=True , так как это значительно ускорит преобразование даты.

nfer_datetime_format : boolean, по умолчанию False

если True и parse_dates включены, pandas попытается определить формат строк datetime в Столбцах, и если это может быть сделав вывод, переключитесь на более быстрый метод их анализа. В некоторых случаях это может увеличить скорость разбора на 5-10x.

добавить dayfirst=True если даты в форме DD/MM/YYYY .

выборочные столбцы
Если вам действительно нужно работать только над столбцами 1 9 11 , то вы можете дополнительно уменьшить ресурсы, указав usecols=[0, 8, 10] следующим образом:

результирующий фрейм данных будет содержать только эти 3 столбца данных.

RAM drive
Использование RAM-диска для хранения временного CSV-файла еще больше ускорит время загрузки.

Примечание: это предполагает, что вы используете Windows PC с Excel доступны.

Я использую рабочую станцию Dell Precision T1700 и с помощью c# я смог открыть файл и прочитать его содержимое примерно за 24 секунды, используя стандартный код для открытия книги с помощью служб взаимодействия. Использование ссылок на библиотеку объектов Microsoft Excel 15.0 вот мой код.

мои операторы using:

код для открытия и чтения книги:

Я создал образец Java программа, которая может загрузить файл в

40 секунд мой ноутбук (Intel i7 4 core, 16 GB RAM).

эта программа использует библиотека POI Apache загрузить .xlsx файл с помощью XSSF SAX API.

интерфейс обратного вызова com.stackoverlfow.largefile.RecordHandler реализация может использоваться для обработки данных, загруженных из excel. Этот интерфейс определяет только один метод, который принимает три аргумента

  • sheetname: строка, имя листа excel
  • номер строки: int, номер строки данных
  • и data map : карта: Ссылка на ячейку excel и значение ячейки в формате excel

класс com.stackoverlfow.largefile.Main продемонстрируйте одну основную реализацию этого интерфейса, которая просто печатает номер строки на консоли.

обновление

woodstox парсер, кажется, имеет лучшую производительность, чем standard SAXReader . (код обновлен в репо).

также для того чтобы соотвествовать пожеланный представления, вы можете рассматривать re-implement org.apache.poi. XSSFSheetXMLHandler . В реализации можно реализовать более оптимизированную обработку строк / текстовых значений и пропустить ненужную операцию форматирования текста.

похоже, это вряд ли достижимо в Python вообще. Если мы распакуем файл данных листа, то потребуется все необходимые 30 секунд, чтобы передать его через итеративный парсер SAX на основе C (используя lxml , очень быстрая обертка над libxml2 ):

выход образца: 27.2134890556

кстати, сам Excel требует около 40 секунд, чтобы загрузить книгу.

решение c# и ole все еще имеет некоторое узкое место.Поэтому я тестирую его на c++ и ado.

В i5-4460 и HDD-машине я нахожу 500 тысяч ячеек в xls займет 1,5 С. Но те же данные в xlsx займут 2.829 С. таким образом, можно манипулировать вашими данными до 30 лет.

Если вам действительно нужно под 30s, используйте привод RAM для уменьшения ввода-вывода файла.Это значительно улучшит ваш процесс. Я не могу загрузить ваши данные, чтобы проверить его, поэтому, пожалуйста, сообщите мне результат.

другой способ, который должен в значительной степени улучшить время загрузки/работы, — это RAMDrive

создайте RAMDrive с достаточным пространством для вашего файла и 10%..20% дополнительного пространства.
скопируйте файл для RAMDrive.
Загрузите файл оттуда. в зависимости от вашего диска и файловой системы улучшение скорости должно быть огромным.

мой любимый imdisk toolkit
(https://sourceforge.net/projects/imdisk-toolkit/) здесь у вас есть мощная командная строка для сценария всего.

но это также зависит от вашей ОС.

Я хотел бы иметь больше информации о системе, где вы открываем файл. во всяком случае:

найдите в своей системе обновление Windows под названием
«Средства проверки файлов Office для Office . «

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

вы пробовали загрузить лист по требованию, который доступен с версии 0.7.1 xlrd?

для этого нужно пройти on_demand=True to open_workbook() .

xlrd.open_workbook (filename=нет, logfile= , многословие=0, use_mmap=1, file_contents=нет, encoding_override=нет, formatting_info=False, on_demand=False, ragged_rows=False)

другие потенциальные решения python, которые я нашел для чтения файла xlsx:

    читать raw xml in ‘ xl / sharedStrings.xml ‘ и ‘ xl / worksheets / sheet1.с XML’

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

если вы работаете в Windows, вы можете использовать PyWin32 и » Excel.Применение’

сохраните excelsheet в файл с разделителями табуляции и откройте его, как вы обычно читаете простой txt:)

edit: затем вы можете прочитать файл строка за строкой и разделить строки на вкладках. Получите необходимые столбцы данных по индексу.

Профессиональные приемы работы в Microsoft Excel

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа «А какой критерий?», «А куда выводить результат?», «А сколько строк?» и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Понравилась статья? Поделить с друзьями:
  • Как ускорить макрос vba excel
  • Как ускорить запуск word
  • Как ускорить запись excel
  • Как ускорить вычисления в excel
  • Как ускорить выполнение макроса в excel