Страницы: 1
RSS
От чего зависит изменение размера файла MS Excel?
 
Дано: 3 практически одинаковых файла. (количество листов, строк и столбцов в них, уровень использования формул и фильтров - это разные по времени версии одного документа). Один весит 267 кб, другой 9,23 мб, третий вообще 25,7 мб! (грузит всю систему и просто отказывается работать)  
Какие критерии такого разброса по размеру?    
Экспериментально-опытным путем уже отчаялся выяснять. Единственный критерий выловил - количество листов в книге. Но для данного примера он везде одинаков!  
Помогите, плз!
 
посмотреть, что дает нажатие ctrl+end  на каждом из листов
 
посмотрел: переходит в крайнюю правую ячейку заполненного диапазона на каждом листе.    
А что должно было это дать?
 
количество заполненых ячеек сильно влияет на размер файла.  
но если оно у вас сильно не отличается...
 
Можно попробовать переместить листы в новую книгу. Обычно помогает избавиться от старого мусора.  
Либо сконвертировать книгу в какой-нибудь другой формат, а потом обратно.
 
Да, спасибо.    
А в какие форматы можно конвертировать, чтобы не повредить содержимое файла?
 
{quote}{login=Саша}{date=26.09.2007 04:21}{thema=}{post}Да, спасибо.    
А в какие форматы можно конвертировать, чтобы не повредить содержимое файла?{/post}{/quote}  
Тут сильно от версии Excel зависит. Скорее всего, в какую-нибудь более старую версию Excel (по уму, он должен предупредить в случае, если что-то не поддерживается).  
Но, всё-таки, сначала стоит попытать счастья с перемещением листов в новую книгу - так меньше риск чего-нибудь испортить.
 
Ладно, попробую. Спасибо!
 
Все равно сохраняет исходно большой размер :(  
Что еще можно сделать?  
Сталкивался ли кто-нибудь с такой же проблемой - сверхбольшие размеры (в мегабайтах) экселевских файлов?
 
Ещё мысли:  
1) попробовать установать пароль на файл и сохранить. Потом пароль снять.  
2) выявить виновный лист (обычно он один такой бывает) методом "половинного деления" (скопировать одну половину листов в новый файл, затем вторую в другой файл, выяснить в какой части засада, повторить пока на останется один лист)  
3) попробовать открыть и сохранить файл на другом компьютере (вдруг вирусы какие есть) или в более новой версии Excel  
4) картинок, надеюсь, на листах нет? (иногда бывают проблемы из-за несжатого формата изображений)
 
{quote}{login=Саша}{date=27.09.2007 05:27}{thema=}{post}Все равно сохраняет исходно большой размер :(  
Что еще можно сделать?  
Сталкивался ли кто-нибудь с такой же проблемой - сверхбольшие размеры (в мегабайтах) экселевских файлов?{/post}{/quote}  
 
Попробуй выявить скрытые графические обекты. У меня было такое. При копировании файла они множились и файл заметно тяжелел с каждым разом.
 
Сводных таблиц в файлах нет? Размер файла сильно зависит от того как кеш в сводных хранится.
 
Добавлю свои 5 копеек:  
Меню Правка - Связи, поубивать все ненужные внешние связи, поскольку он их буферизует внутри файла.  
Также возможны "Фантомные ссылки" - оставшиеся неубитыми связи с внешним миром, в окне Правка - Связи не видны, убиваются с помощью специальных надстроек.  
Проверить наличие макросов в меню Сервис - Макрос - Макросы, поубивать ненужные (или все).  
Иногда помогало сохранить для Excel 5.0 с частичной потерей функциональности. Также настоятельно рекомендовал бы попробовать перенести данные в Excel 2007 - там размер нового формата файлов в среднем раз в 5-7 меньше аналогичного для Excel 2003.
 
Попробовал как то форму, созданную для общения с пользователем, разукрасить - вставил кучу рисунков в качестве заливки фона....  
Получилось очень красиво!  
Но грузиться стало - очень медленно! ;)
 
Еще стоит проверить нет ли циклических ссылок в документе.  
А также посмотреть не установлена ли защита на рабочую книгу. Вот у меня такая проблема была, когда я установила пароль на всю книгу. Потом его убрала и установила защиту на каждый лист. Размер файла намного уменьшился.  
 
 
{quote}{login=Николай Павлов}{date=29.09.2007 02:56}{thema=Re:}{post}Добавлю свои 5 копеек:  
Меню Правка - Связи, поубивать все ненужные внешние связи, поскольку он их буферизует внутри файла.  
Также возможны "Фантомные ссылки" - оставшиеся неубитыми связи с внешним миром, в окне Правка - Связи не видны, убиваются с помощью специальных надстроек.  
Проверить наличие макросов в меню Сервис - Макрос - Макросы, поубивать ненужные (или все).  
Иногда помогало сохранить для Excel 5.0 с частичной потерей функциональности. Также настоятельно рекомендовал бы попробовать перенести данные в Excel 2007 - там размер нового формата файлов в среднем раз в 5-7 меньше аналогичного для Excel 2003.{/post}{/quote}
 
Попробовал сахранить в другом фармате, а потом этот файл опять сахранил в xls формате, файл уменьшился примерно в 10 раз.
 
Как вариант: переходим к самой нижней ячейке с данными, затем Ctrl+Shift+вниз, затем Shift+пробел, затем Правка-Очистить-Все.  
 
Аналогично повторяем для самой правой ячейки с данными (переходим к самой правой, затем Ctrl+Shift+вправо, Ctrl-пробел, Правка-Очистить-Все).  
 
Сохраняем файл.  
 
На работе часто вижу, что неопытные пользователи выделяют весь столбец (строку) и применяют форматирование (сетку или цвет и т.д.). Размер файла при этом увеличивается в разы.
 
Я провел небольшой эксперимент над прикрепленным файлом. Результаты и мои умозаключения на листе2.  
Если кто-нибудь что-то подобное проводил - поделитесь.  
С уважением, Александр.
 
{quote}{login=}{date=28.09.2007 11:52}{thema=Re: }Попробуй выявить скрытые графические обекты. У меня было такое. При копировании файла они множились и файл заметно тяжелел с каждым разом.{/post}{/quote}  
 
А как найти эти скрытые графические объекты? :)
 
Ну выкладывал же на форум ReduceSize, поищите.
Я сам - дурнее всякого примера! ...
 
Есть файл 1 лист заполнено 66 столбцов и 15 000 строк файл весит с формулами 16мб :)  
функция ВРП очень сильно увеличивает размер файлов.
 
Руслан, выполните макрос. Увераю, Вы удивитесь.
Я сам - дурнее всякого примера! ...
 
Для Саши.
Я сам - дурнее всякого примера! ...
 
Ругается  
на lAntR = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row  
 
я вот тут нашел    
http://www.planetaexcel.ru/forum.php?thread_id=16841  
 
Sub ReduceSize()  
Dim lAntR As Long  
Dim iAntK As Integer  
Dim aR() As Single  
Dim aK() As Single  
Dim n As Integer  
Dim sFil1 As String  
Dim sFil2 As String  
Dim sKat As String  
Dim sArk As String  
 
sFil1 = ActiveWorkbook.Name  
sKat = ActiveWorkbook.Path  
sArk = ActiveSheet.Name  
 
lAntR = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row  
iAntK = Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column  
 
ReDim aR(lAntR)  
ReDim aK(iAntK)  
For n = 1 To lAntR  
aR(n) = Rows(n).RowHeight  
Next n  
For n = 1 To iAntK  
aK(n) = Columns(n).ColumnWidth  
Next n  
 
Application.CutCopyMode = False  
Range(Cells(1, 1), Cells(lAntR, iAntK)).Copy  
Workbooks.Add  
sFil2 = ActiveWorkbook.Name  
ActiveSheet.Name = sArk  
ActiveSheet.Paste  
Application.CutCopyMode = False  
 
For n = 1 To lAntR  
Rows(n).RowHeight = aR(n)  
Next n  
For n = 1 To iAntK  
Columns(n).ColumnWidth = aK(n)  
Next n  
 
Application.DisplayAlerts = False  
Workbooks(sFil2).SaveAs sKat & "\" & "(2)" & sFil1  
Workbooks(sFil1).Close savechanges:=True  
Application.DisplayAlerts = True  
End Sub
 
Тот что я скинул работает :)    
было 16 стало 13 не на много, но все же.
 
Рад, что сумел помочь.    
 
31312 ого!
Я сам - дурнее всякого примера! ...
 
Помогло только копирование области, содержащей полезную информацию, на новый лист и удаление старого листа.  
Ни выделение свободного пространства и очистка, ни макрос (правда он не корректно работал, разбираться не стала), ни изменение формата при сохранении\пересохранении не помогли.
AL
 
Возможно у Вас там много скрытых объектов и\или имен.  Нужно видеть файл, чтобы помочь.  
Большие файлы лучше на файлообменник.
Я сам - дурнее всякого примера! ...
 
Можно мне на почту.
Страницы: 1
Читают тему
Наверх