Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Размер и содержимое xls-файла (http://forum.oszone.net/showthread.php?t=226656)

ShaddyR 31-01-2012 01:29 1848029

Размер и содержимое xls-файла
 
Вложений: 1
Во вложении - "шахматка" от бухгалтера одного из подшефных предприятий. Без данных - удалены. Т.е. теоретически - пустая. Вопрос на засыпку: почему файл занимает почти 10Мб и тормозит при открытии на довольно мощных (как для задачи "открыть файл xls") компьютерах? И таких файлов у бухгалтера - штук несколько, некоторые занимают по 30Мб - ну, привыкла она так чего-то там вести. Причем до недавнего времени проблем не наблюдалось - ни долгого открытия, ни торможения при скролинге етс.

Что пробовал: разделять файл на части (типа по пол-года, по-квартально етс.) - долго, нудно и безрезультативно. Проверено: если из вложения скопировать ВСЕ, но вставлять как (последовательно) формат, столбцы, значения - визуально все выглядит аналогично исходнику, но сохраненный файл весит пару десятков килобайт (порядка 35Кб, после прописывания всех формул по аналогии с исходником).
2010-й Excel после пересохранения дал объем в 800Кб - типа что-то оптимизировал. Но сохранение обратно из xlsx в xls возвращает все на круги своя.

Какие мысли\идеи будут?

ferget 31-01-2012 02:53 1848052

Цитата:

Цитата ShaddyR
2010-й Excel после пересохранения дал объем в 800Кб - типа что-то оптимизировал. »

не оптимизировал, а сжал, xlsx - это zip архив

если архив открыть, то внутри есть файл drawing1 весом 75 MB

okshef 31-01-2012 08:38 1848113

Вложений: 1
ShaddyR, забирай чистый

ShaddyR 31-01-2012 12:57 1848313

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

okshef 31-01-2012 23:48 1848893

Цитата:

Цитата ferget
если архив открыть, то внутри есть файл drawing1 весом 75 MB »

открываем, сохраняем как файл Excel 2010 (расширение *.xlsx), открываем любым архиватором, удаляем из архива папку drawing1, сохраняем изменения в архиве.
Открываем файл, игнорируем ругань Excel-я, соглашаемся с его попыткой восстановить файл. После открытия файла сохраняем его "как" в формате Excel 2003. Наслаждаемся при следующем открытии.

ShaddyR 01-02-2012 00:15 1848912

офигеть... а это из какого mskb ? :o :lamer:
На досуге проверю рецепт)

okshef 01-02-2012 00:29 1848923

Общие сведения о новых расширениях имен файлов и XML-форматах Office - Excel - Office.com
Цитата:

Сжатие файлов Файлы сжимаются автоматически, и в некоторых случаях их размер может сокращаться на 75 процентов. В XML-форматах Office для хранения документов используется стандарт сжатия ZIP

ShaddyR 01-02-2012 00:52 1848943

okshef, я не против. Мне просто интересно стало происхождение графического объекта в файле, где ему быть не полагалось. Причем в разных файлах и с определенного времени. А средствами собсно офиса 2003 подобное решается?

okshef 01-02-2012 02:25 1848983

ShaddyR, я когда первоисточник исследовал, никак не мог найти даже намека на графический объект. Но сейчас, детально поколупавшись, нашел на листе с таблицей более 52000 (!!!) текстовых полей.
Лови макрос для удаления всех графических объектов книги
Код:

Sub shapes_del()
Dim shp As Shape
For i = 1 To Worksheets.Count
    j = 0
        For Each shp In Sheets(i).Shapes
            shp.Delete
        j = j + 1
        Next shp
    MsgBox "На листе " & i & " удалено " & j & " графических объектов"
    Next
    MsgBox "Done !"
End Sub

Причина - испорченный шаблон

p.s. Не пугайся - работать будет долго. На моем i7 около 5 минут

ShaddyR 01-02-2012 19:07 1849510

Цитата:

Цитата okshef
работать будет долго. На моем i7 около 5 минут »

Долго - это не то слово. Второй вариант проще и эффективней по затратам времени:
Цитата:

Цитата okshef
открываем, сохраняем как файл Excel 2010 (расширение *.xlsx), открываем любым архиватором, удаляем из архива папку drawing1, сохраняем изменения в архиве.
Открываем файл, игнорируем ругань Excel-я, соглашаемся с его попыткой восстановить файл. После открытия файла сохраняем его "как" в формате Excel 2003. Наслаждаемся при следующем открытии. »


okshef 01-02-2012 21:54 1849624

ShaddyR, это что? Ты сломаешь мозг, когда захочешь понять, откуда у этой заразы ноги растут? Разберешься - отпишись, будь ласка.

okshef 17-09-2013 00:38 2219079

ShaddyR, вот и "ноги" 2010 - Excel после вставки зависает
В представленном ТС файле (даже считать не стал, сколько) - фигуры. Сравнил с исходным (файл взят из Консультант+ - см. Приложение 10). В нем только 1 формочка, совсем невидная, если специально не смотреть. В процессе копирования из 1 формочки получается 2, из 2 - 4, ну, а дальше ... ты понимаешь. На 15 копировании файл вешает Excel и все кричат "Караул".

ShaddyR 17-09-2013 02:55 2219114

okshef, формочки формочками... но откуда там нафиг при этом графические объекты берутся? Опять уважаемая программа старается думать за нас, что именно мы имели в виду? А спросить? ;)

okshef 17-09-2013 08:33 2219159

Это не программа, это разработчики этих формочек... Excel сам добавить на лист ничего не может.


Время: 23:53.

Время: 23:53.
© OSzone.net 2001-