Діагностика повільних електронних таблиць Excel?


13

Клієнт зв’язався зі мною, поскаржившись на електронні таблиці Excel, які потребували відкриття занадто довго. Вони використовують Excel для створення рахунків-фактур, тому у них є сотні електронних таблиць Excel з легким форматуванням і дуже простими розрахунками. Сортувавши електронні таблиці за розміром, я побачив, що хоча більшість електронних таблиць варіюється від 10-250 тис., Було декілька електронних таблиць з розмірами файлів 2-3 Мб і більше. Як не дивно, розміри файлів не були величезними, вони не містять багато даних, лише трохи форматування, можливо, дві-три сторінки друкованих рахунків-фактур, але кількість даних була майже однаковою для електронних таблиць меншого розміру (і звичайного відкриття). .

Під час відкриття файлу кількість необхідної оперативної пам’яті зростатиме від 3 Мб до 400 МБ, і він би повністю зайняв одне ядро ​​(тестоване на двоядерному офісі в офісі та на моєму чотирьохядерному ноутбуці). Я думав, що вони якось спіймали якийсь код VBA, але немає макросів, коду VBA. Ctrl + End показує 39 рядків і близько 12 стовпців (закінчується на M). Я навіть видалив дані, рядок за рядком або стовпець за стовпцем, поки не залишилося даних, і це все ще створює мені ту саму проблему.

Я переглянув багато пошукових запитів у Google, але ніде не потрапив. Хто-небудь може запропонувати будь-яку допомогу?


Ще одна цікава примітка: я не в змозі зберегти файл xlsx як файл xls у Excel 2007, але імпортуючи його у Google Docs та зберігаючи його як файл xls, я знову отримую файл звичайного розміру.
Саймон Хова

Відповіді:


7

Я знайшов відповідь на свою проблему!

Використовуючи підказки, надані мені allquixotic, я відкрив файли xlsx у 7-Zip та порівняв розміри файлів. Був один файл, який був значно більшим за інші. Файл xl \ малюнки \ малюнок1.xml - це файл, який містив кілька посилань на формати знову і знову.

Я провів декілька годин, намагаючись з'ясувати схему, але не зміг. Ніщо, що я міг зробити, не міг би змусити його працювати! Потім, після нападу загострення, я просто видалив проклятий файл і спробував знову відкрити в Excel (2010 - не перевіряв його в Excel 2007).

Він скаржився на те, що файл пошкоджений, і запитав, чи хочу я спробувати відновити. Відновлення файлу просто стерло форму, але форматування файлу зовсім не змінило. Мені довелося зберігати файл як той самий файл, який був трохи дивним, але він працював!

Як я вже згадував раніше, я не перевіряв це рішення для будь-яких продуктів, крім Excel 2010, тому не знаю, чи файл форми був критичним для Excel 2k7 або будь-яких продуктів OpenOffice. Але якщо у вас є подібна проблема, сподіваємось, це може бути корисним.


Я зіткнувся з файлом з тією ж проблемою. Замість того, щоб видалити draw1.xml, я видалив посилання на малюнок з sheet1.xml і зробив "зберегти як". Можливою причиною може бути копіювання даних або відформатованих рядків з пошти, Інтернету чи інших електронних таблиць.
Андрій

1
Зустрічався з подібною ситуацією. У моєму випадку є кілька малюнківN.xml, розмір яких варіюється від "прийнятних" 200 Кб до 80 Мб. Цей файл приносить навіть чотириядерний робочий стіл з 16 Гб оперативної пам’яті на коліна. Видаляючи всі малюнкиN.xml (оскільки файл Excel навіть не містить жодної діаграми / графіки) вирішує проблему, працює над останньою Office 365 на момент написання цього тексту.
Martheen Cahya Paulo

6

Ви використовуєте бінарний формат .xls або новий формат .xlsx на основі XML? Загалом формат .xlsx призводить до різкого зменшення розміру файлів.

Перевірте такі речі, як надмірна кількість стилів, що зберігаються в документі.

Спробуйте "видалити особисту інформацію" (функцію Excel / Word / тощо), щоб очистити певні види суглобів, які, можливо, сидять у файлі.

Якщо електронна таблиця є або раніше вона була спільною, у ній можуть бути збережені старі дані спільного доступу.

Одне просте виправлення - скопіювати та вставити лише відповідні дані з цієї таблиці в нову, а потім зберегти їх у форматі .xlsx і подивитися, наскільки вона невелика. Якщо його дуже мало, то у вас є відповідь - Excel веде поганий облік структури даних внутрішнього файлового формату.

Також перевірте наявність складних або кругових формул та посилань на зовнішні аркуші (особливо на мережеві накопичувачі). Якщо ви думаєте, що формула може бути повільною, ви можете переглядати її за допомогою інструменту аудиту формул.

І останнє: якщо ви збережете його як .xlsx і він все ще великий, спробуйте завантажити інструмент продуктивності OpenXML SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Відкрийте у цьому .xlsx і просто подивіться на всі елементи у файлі і перевірте, чи щось очевидно є стороннім. Це може зажадати знань XML та конкретних схем OpenXML, але це надійний спосіб з'ясувати, що спричиняє набряк.

PS - якщо така штука вас дратує, припиніть використовувати формати / програми Microsoft або запропонуйте своєму клієнту зробити це. Якщо ви розійдетеся за "роздуттям бази даних Microsoft Access", ви побачите, що Microsoft має багаторічну історію дозволу їхніх власних форматів просочувати безліч непотрібних даних на диск, який ніколи не очищається. Це як справді неприємне витоку пам’яті, яке з’їдає ваш диск замість оперативної пам’яті.


Електронна таблиця - це справді xlsx, і одна дивна річ: я не можу зберегти її як .xls-файл. Він продовжує повертати помилку в Excel 2k7. Я зберегла копію як електронну таблицю xml 2003 року, і дивна річ, яку я виявила, - це перелік величезної кількості стилів . Це дивно, оскільки вся електронна таблиця використовує один і той же шрифт і не має спеціального форматування. Ще не маю уявлення, що сказати моєму клієнту.
Саймон Хова

2

Іншим можливим рішенням буде:

  1. Створіть копію проблемного файлу Excel
  2. Відкрийте цю копію
  3. Натисніть CTRL + A, а потім натисніть "Очистити" -> "Очистити формати"
  4. Повторіть крок 3 на кожному робочому аркуші
  5. Збережіть файл і спробуйте його знову відкрити

Коли занадто багато форматування, особливо якщо є багато різних стилів, застосованих до багатьох окремих комірок, Excel справді намагається застосувати форматування під час відкриття файлів.

Звичайно, коли ви видалите все форматування, у вас вийде просто текст із стилем за замовчуванням, застосованим до нього, у всіх осередках, у яких відсутні рамки, затінення тощо. Але таким чином можна точно визначити причину проблеми.


0

Для різкого зменшення розміру ви можете спробувати формат .xlsb. Слід скоротити більше, ніж будь-який інший формат на основі XML, який надає excel.

Відкрийте один із цих аркушів і подивіться на формат. Шукайте що-небудь звичайне. Спробуйте скопіювати весь стовпець в іншу таблицю Excel та вставити лише значення (без форматування). Подивіться, чи допомагає це.


Я спробував зберегти в xlsb. Відсутність зменшення розміру взагалі. Знімок екрана .
Саймон Хова

@Simon Hova Ви намагалися встановити обчислення вручну та перезапустити програму excel? Це може бути що завгодно: формули, форматування. Ви скопіювали стовпець даних в іншу таблицю Excel, щоб побачити, чи ефективність однакова? Просто дані; немає формули чи форматування. Додайте їх по одному і подивіться, де проблема.
TwirlMandarin

Це ще одна дивна річ, там немає ніяких розрахунків, немає ніяких формул запускаються. Це лише кілька рядків і стовпців з деяким незначним форматуванням. Я намагався видалити дані за рядком, і мені залишається файл приблизно такого ж розміру, як і раніше. Ще затуманився.
Саймон Хова

0

У моєму випадку проблема була пов'язана з "Форматування як таблиця". У таблиці було 16000 порожніх стовпців. Я думаю, це одна з найчастіших причин подібного роду проблем.


0

Я переглянув усі правила умовного форматування, у всьому робочому аркуші, і були навантаження. Я пройшов і очистив їх усіх, а потім створив ті, які мені насправді потрібні, і зараз це дуже швидко. Також я позбувся всіх «підключень», які мені не потрібні, та збережіть як .xlsb після того, як усе добре працювало, і це ще швидше: o)


Це дублює інформацію в інших відповідях, і так відчувається як коментар "спасибі".
bertieb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.