В 60 !!! раз сжимаем файл MS EXCEL с картинками (созданный программно из 1С)

Все мы когда то сталкивались с экспортом картинок в файл MS EXCEL (или семейство MS принцип один и тот же)
Что интересно , покажу на примере если создать новый лист MS EXCEL и вставить
в него картинку (*.jpg) размером 1,06 мб и сохранить книга столько примерно и будет весить.(это касается последних версий MS EXCEL)
Но если программно в таблицу 1С вставить туже картинку и сохранить в формате *.xls
То новоиспеченное чудо будет весить `24,2 мб. !!! Красиво да.
А если не одна картинка ?
Давайте разберемся почему так происходит.
1. 1С сохраняет (экспортирует свою мxl таблицу по умолчанию в MS EXCEL в формате 05 MS EXCEL)
— хорошо руками открываем файл и сохраняем в нужном нам формате. Смотрим размер файла — 5,6 мб. уже хорошо, но еще нето.
2. В свойствах рисунка есть замечательная функция сжать…. выбираем ее и выбираем "Изменить разрешение для экрана и Интернета"  всего 96 точек на дюйм вместо 200 )))
Сохраняем файл и что мы видим файл весит 0,8 мб….да это прорыв. Но это каждый раз ручками, лень….
Данная обработка не претендует на оригинальность, ОНА ПРОСТО показывает на примере как программно можно добиться успеха в 60 раз ! файл в итоги будет весить 0,4 мб (не без помощи языка VBA)

 

 

46 Comments

  1. alexk-is

    Прикольно. Только подпись смутила… 🙂

    Reply
  2. coder1cv8

    Убери из подписи «гений», это оскорбительное слово в кругах одинэсников )

    Reply
  3. Арчибальд

    (1,2) Тсссссс….

    Reply
  4. Tatitutu

    (2) так уж меня назвали давным давно еще в армии служил

    ПРОсто Гений (от слова ПРОГ)

    Reply
  5. Душелов

    (4) Лучше Татитуту, поверь.

    Reply
  6. Parazyte

    или сократи до ПРОГ 🙂

    Reply
  7. Tatitutu

    Изменил)))

    Reply
  8. CheBurator

    Например: есть у меня прайс для клиентов с картинками — при сохранении штатно весит 37 мег, при пересохранении в экселе (без всяких сжать) — 3 мега…

    …автору рекомендую посмотреть «проект Йоксель»

    Reply
  9. Tatitutu

    (8) я об этом писал в описании. При программном просто пересохранение (в данном примере 800 кб вместо 24 мб, а если еще и картинки сжать то 400 кб)

    Картинка картинке рознь (если это уже скриншоты с маленьким разрешением,то не очень сильно будет заметно сжатие, а если загрузишь фото с большим разрешение- то эфект интересный будет. Фотография в ориганиле 5 мб можно сохранить с размером 80 кб, а при печати на простом офисном принтере почти не заметно)

    Reply
  10. Tatitutu

    (8) а ты попробуй свой прайс лист подставь в процедуру сжатие и сравни результат. Это обработка сделана как наглядный пример. Рабочая делает во первых групповую обработку офисных файлов (находит файл если есть картинки то сжимает и сохраняет). И также при отправке почты , формирование документации. В программе формируется техническая документация на модель (одновременно на нескольких языках) и в нее вставляется всякая дребедень — рисунки фурнитуры, тех.рисунки, отсканированные картинки, скан перевод, и.т.п. Один комплект бывает до 150 листов (и почти все они с картинками) моделей мнооооооого. Вот для этого и написал.

    Reply
  11. CheBurator

    (9) Картинка картинке рознь (если это уже скриншоты с маленьким разрешением,то не очень сильно будет заметно сжатие,

    — как раз наоборот! у меня в прайсе просто туча маленьких картинок с невысоким разрешением — и с 40 мег простыхм пересохранением ужимается до 3-4 мег. — объяснение смотри в проекте Йоксель

    Reply
  12. Tatitutu

    (11) Я именно про это тебе и ответил.

    У тебя уже «ужатые картинки» и эфект мало заметен.

    Ситуювина такая. просто пример ничего более….время как обычо не хватает

    предзаказ. Сфотографировали порядки 200 фоток (допустим) наш товар на моделях. Скинули на комп с фотоаппарата. Есть папка (300 метров — каждый файл около 1,5) нужно создать буклет для клиентов. Красивый и красочный.А времени нет….ну ты меня понимаешь, да. Обработка с «рыбой» чтобы картинку подогнать правильно, оформление,информация из справочника, картинка из каталога. Альбом в готовом виде — около 8 мб

    В проекте Йоксель был — спасибо.

    Reply
  13. CheBurator

    (12) ничего себе — мало заметен — в 10 раз. Дело не в ужатости картинок, а втом, как они сохраняются конвертором в эксель

    Reply
  14. Tatitutu

    (13) мы с тобой говорим на «Разных языках» — ты пиаришь Йоксель, а я показал стандартные возможности работы MS EXCEL (по статистике мы пользуемся только 10% от его возможностей, как и нашим мозгом (с)) Чем больше вариантов и знаний у тебя есть по решению вопроса, тем больше возможностей.

    Reply
  15. novj

    Да это круто, помню похожую задачу в 8.1 пришлось таки решать через Active Document…

    Reply
  16. Tatitutu

    (15) посмотри код — он легко пойдет и на 8, так как используются возможности самого Офиса , а не 7

    Reply
  17. novj

    Да, я вижу.

    просто в свое время мне нужна была поддержка программера, и я выложил

    подобную задачу на http://www.outsources.ru. Видимо мне просто не повезло.

    чел с высоким рейтингом задавал столько вопросов что это превратилось в историю » не заебет так замучает».

    Reply
  18. motogon

    (0) Хм, не знал, автору плюс!

    Reply
  19. vsozansky

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

    Огромная благодарность и всяческие респеркты Автору!!!

    Reply
  20. apvl

    +1

    Reply
  21. das

    (8) +

    но и эта работа вызывает интерес

    Reply
  22. markers

    Идея интересная! Скоро как раз потребуется! Спасибо!

    Reply
  23. nickVZ

    Как-то не приходилось сохранять отчеты с картинками в формате Ёкселя — предпочитаю PDF для таких целей…

    Но идея имеет право быть. А если еще пользуются с пользой — тем более.

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

    Но если просто скачали для «посмотреть»? Ну посмотрели, ну хорошо, но лично не актуально, запомним и отложим… Не вступая в дискуссию. Это плохо?

    Reply
  24. 1B

    Это очень интересно. Но как можно сделать так, чтобы макрос, который записан в шаблоне можно было реализовать непосредственно в 1С, Тогда это будет идеальный вариант решения сжатия картинок вставляемых в Excel из 1С.

    Reply
  25. pisarevEV

    прошу автора помочь реализовать все тоже самое, но не через макрос, я непосредственно в теле програмного модуля 1С. К сожалению не силен в VBA…

    Reply
  26. nikolis



    Спасибо — очень полезная

    Reply
  27. Tatitutu

    извиняюсь перед (24,25,26) я не видел раньше Ваших комментариев (на почту не приходило)

    я услышал Вас — попробую удовлетворить Вашу просьбу.

    Reply
  28. MegaMouse

    Все замечательно .

    По поводу «АвтоПопрошайки» небольшое пожелание — Ссылку на обработку покорректнее писать : — http://infostart.ru/public/19977/) — без лишних кавычек и пр

    Reply
  29. Tatitutu

    (29) Спасибо , учту 😀

    Reply
  30. kpk60

    Огромная благодарность автору.

    Reply
  31. Myti

    Слушай——а без макросов в документе можно обойтись……

    Reply
  32. Myti

    Просто недавно делал такое (25) — запрка та еще была…но результат стоял того

    Reply
  33. Tatitutu

    (32) Не понял вопроса ? если вообще без макросов — то руками можно (часто очень сильно помогает)

    что нужно сделать ?

    Reply
  34. Tatitutu

    посмотри две крайние работы, может сам и прикрутишь

    http://infostart.ru/public/62751/

    http://infostart.ru/public/62648/

    Reply
  35. Myti

    (34) — я имел ввиду сжатие картинок средствами 1с через Excel.Application

    Reply
  36. Tatitutu

    (36) в свое время я искал — перерыл кучу документации

    но увы…не нашел — ни свойств, ни метотов этого окна сжатия

    и «всемирный разум» молчит

    Reply
  37. andru_dv

    Интересная обработка…

    Reply
  38. new_user

    Отличное решение задачи да ещё и на седьмой платфйорме за что отдельный плюс!!!

    Reply
  39. kerima

    Обработка очень помогла. Я ее переделала на 81. У нас прайс с большим количеством картинок. Единственно в 2007 офисе намного хуже сжимает картинки чем в 2003-м. Пэтому пришлось 2003 еще ставить. 😀

    Reply
  40. logon

    Спасибо 🙂

    Reply
  41. aximo

    Молодец, автоматизировал возможность сжатия

    Reply
  42. san4o

    Скачал файл, но в архиве только обработка СжатиеEXCEL.ert. Функционал по сжатию с изменением разрешения картинок с 200 на 96 точек прописан в файле Шаблон.xls средствами Excel. Из 1С обработки вызывается макрос. Файла Шаблон.xls в архиве нет. Как-то ни за что списался 1 стартмани.

    Reply
  43. Tatitutu

    (43) Александр

    все написано в описании

    «Все мы когда то сталкивались с экспортом картинок в файл MS EXCEL (или семейство MS принцип один и тот же)

    Что интересно , покажу на примере если создать новый лист MS EXCEL и вставить

    в него картинку (*.jpg) размером 1,06 мб и сохранить книга столько примерно и будет весить.(это касается последних версий MS EXCEL)

    Но если программно в таблицу 1С вставить туже картинку и сохранить в формате *.xls

    То новоиспеченное чудо будет весить `24,2 мб. !!! Красиво да.

    А если не одна картинка ?

    Давайте разберемся почему так происходит.

    1. 1С сохраняет (экспортирует свою мxl таблицу по умолчанию в MS EXCEL в формате 05 MS EXCEL)

    — хорошо руками открываем файл и сохраняем в нужном нам формате. Смотрим размер файла — 5,6 мб. уже хорошо, но еще нето.

    2. В свойствах рисунка есть замечательная функция сжать…. выбираем ее и выбираем «Изменить разрешение для экрана и Интернета» всего 96 точек на дюйм вместо 200 )))

    Сохраняем файл и что мы видим файл весит 0,8 мб….да это прорыв. Но это каждый раз ручками, лень….

    Данная обработка не претендует на оригинальность, ОНА ПРОСТО показывает на примере как программно можно добиться успеха в 60 раз ! файл в итоги будет весить 0,4 мб (не без помощи языка VBA)»

    есть обработка. она с открытым кодом полностью рабочая (ей более 8 лет !!!)

    все там есть и как нужно работает !

    а вот за такие слова «Файла Шаблон.xls в архиве нет. Как-то ни за что списался 1 стартмани.» Жду извинения

    Reply
  44. san4o

    Да, действительно, все файлы в архиве есть. Приношу извинения.

    Проблема была на моей стороне.

    Скачивал файл на Windows 2008 Server R2, просматривал встроенным средством работы со сжатыми zip папками.

    При этом в архиве виден только файл обработки. По команде «Извлечь все…» распаковывается только обработка.

    Остальные файлы видны только если открыть архив через 7zip или WinRar.

    Могу дать удаленный доступ — сами посмотрите.

    Жаль, что не разобрались сразу, когда я писал в личку.

    Reply
  45. Tatitutu

    (45) Александр ! Все нормально. Я тогда давным давно — специально сделал файлы скрытыми.

    Мы же программисты ! Чтобы жизнь скучной не была

    Reply
  46. san4o

    (46) 🙂 🙂 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *