 |
|
Размер и содержимое xls-файла
Вложений: 1
Во вложении - "шахматка" от бухгалтера одного из подшефных предприятий. Без данных - удалены. Т.е. теоретически - пустая. Вопрос на засыпку: почему файл занимает почти 10Мб и тормозит при открытии на довольно мощных (как для задачи "открыть файл xls") компьютерах? И таких файлов у бухгалтера - штук несколько, некоторые занимают по 30Мб - ну, привыкла она так чего-то там вести. Причем до недавнего времени проблем не наблюдалось - ни долгого открытия, ни торможения при скролинге етс.
Что пробовал: разделять файл на части (типа по пол-года, по-квартально етс.) - долго, нудно и безрезультативно. Проверено: если из вложения скопировать ВСЕ, но вставлять как (последовательно) формат, столбцы, значения - визуально все выглядит аналогично исходнику, но сохраненный файл весит пару десятков килобайт (порядка 35Кб, после прописывания всех формул по аналогии с исходником).
2010-й Excel после пересохранения дал объем в 800Кб - типа что-то оптимизировал. Но сохранение обратно из xlsx в xls возвращает все на круги своя.
Какие мысли\идеи будут?
|
Цитата:
Цитата ShaddyR
2010-й Excel после пересохранения дал объем в 800Кб - типа что-то оптимизировал. »
|
не оптимизировал, а сжал, xlsx - это zip архив
если архив открыть, то внутри есть файл drawing1 весом 75 MB
|
Вложений: 1
ShaddyR, забирай чистый
|
Это гуд, конечно. А можно методику\алгоритм очищения озвучить - ну, там, святой водой на кого-нить побрызгать, файл крестным знамением отшлёпать или еще чего? А то у меня, как я говорил, много таких файлов могет быть)
|
Цитата:
Цитата ferget
если архив открыть, то внутри есть файл drawing1 весом 75 MB »
|
открываем, сохраняем как файл Excel 2010 (расширение *.xlsx), открываем любым архиватором, удаляем из архива папку drawing1, сохраняем изменения в архиве.
Открываем файл, игнорируем ругань Excel-я, соглашаемся с его попыткой восстановить файл. После открытия файла сохраняем его "как" в формате Excel 2003. Наслаждаемся при следующем открытии.
|
офигеть... а это из какого mskb ? :o :lamer:
На досуге проверю рецепт)
|
okshef, я не против. Мне просто интересно стало происхождение графического объекта в файле, где ему быть не полагалось. Причем в разных файлах и с определенного времени. А средствами собсно офиса 2003 подобное решается?
|
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 минут
|
Цитата:
Цитата okshef
работать будет долго. На моем i7 около 5 минут »
|
Долго - это не то слово. Второй вариант проще и эффективней по затратам времени:
Цитата:
Цитата okshef
открываем, сохраняем как файл Excel 2010 (расширение *.xlsx), открываем любым архиватором, удаляем из архива папку drawing1, сохраняем изменения в архиве.
Открываем файл, игнорируем ругань Excel-я, соглашаемся с его попыткой восстановить файл. После открытия файла сохраняем его "как" в формате Excel 2003. Наслаждаемся при следующем открытии. »
|
|
ShaddyR, это что? Ты сломаешь мозг, когда захочешь понять, откуда у этой заразы ноги растут? Разберешься - отпишись, будь ласка.
|
ShaddyR, вот и "ноги" 2010 - Excel после вставки зависает
В представленном ТС файле (даже считать не стал, сколько) - фигуры. Сравнил с исходным (файл взят из Консультант+ - см. Приложение 10). В нем только 1 формочка, совсем невидная, если специально не смотреть. В процессе копирования из 1 формочки получается 2, из 2 - 4, ну, а дальше ... ты понимаешь. На 15 копировании файл вешает Excel и все кричат "Караул".
|
okshef, формочки формочками... но откуда там нафиг при этом графические объекты берутся? Опять уважаемая программа старается думать за нас, что именно мы имели в виду? А спросить? ;)
|
Это не программа, это разработчики этих формочек... Excel сам добавить на лист ничего не может.
|
Время: 23:53.
© OSzone.net 2001-