Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Сохранение графика в картинку и отправка серии графиков по почте.

Автор Ingvar, 16.08.2011, 15:42

« назад - далее »

Ingvar

Добрый день.

Есть проблема.
Нужно сделать 20-60 графиков в Excel
С этим проблем нет макросом все создается.
Но теперь эти графики нужно собрать в на одном листе и сделать отчет.
Как вариант сохранить их все в виде картинке и потом по структуре отправить ввиде письма.
С сохранением проблем вроде нет, но вот отправка не получается. Не вставляются они адекватно и красиво в письмо :(
Какие есть варианты. Возможно нужен другой путЬ?
Кто сталкивался с данной проблемой.

Цель получить отчет где в нужных местах между текстом вставлены соответствующие графики.
При это отчет будет отправляться дальше и оптимально если все это будет в теле письма.
Какие есть пути решения?

GWolf

Добрый день, уважаемый Ingvar!

Позвольте предложить вариант: Картинки с графиками отправлять в теле письма, как отдельные файлы. А в Werd-овский файл (само письмо) вставить гиперссылки (относительные) на эти картинки. Тогда проблем с позиционированием-масштабированием возникнуть не должно.
Путей к вершине - множество. Этот один из многих!

Ingvar

Цитата: GWolf от 16.08.2011, 16:12
Добрый день, уважаемый Ingvar!

Позвольте предложить вариант: Картинки с графиками отправлять в теле письма, как отдельные файлы. А в Werd-овский файл (само письмо) вставить гиперссылки (относительные) на эти картинки. Тогда проблем с позиционированием-масштабированием возникнуть не должно.
У меня такая же идея была :)
И её даже реализовал.
НО!!!
ФИшка в том что:
1х сохраняю графики
2х прописываю тэги на линк
3х генерю письмо отправляю.
получаю письмо без картинок или если позиционирование задать пустоту.

Несколько вариантов генерации кода html и сохранения картинок пробывал.
Исходя из идеалогии должно работать но не работает картинки не появляются.
Возможно что-то упускаю, поэтому решил задать вопрос. Т.к. уже мучаемся 7й час ))) все уже готов Отчет вылизан )))
но нет графиков :((((

Можно рабочий пример как правильно вставить относительную гиперссылку..

aristoff

Это вообще задача не Excel, получили графики и "отсканируйте их".
PrintScreen + любой фоторедактор наделает столько одинаковых JPG
картинок из графиков сколько надо, определитесь только с их размерами,
и параметрами печати - страница или ландшафт, и вставляйте в любой Word
документ с обтеканием текста или вокруг рамки.
Любому дизайнеру на 5 минут работы.

Ingvar

Прошу прощения, но
ЦитироватьЭто вообще задача не Excel, получили графики и "отсканируйте их".
PrintScreen + любой фоторедактор наделает столько одинаковых JPG
картинок из графиков сколько надо, определитесь только с их размерами,
и параметрами печати - страница или ландшафт, и вставляйте в любой Word
документ с обтеканием текста или вокруг рамки.
Любому дизайнеру на 5 минут работы.
Мне не нужен ворд, дизайнер и вообще участие человека в формирование отчета. тем более дизайнер не сможет за 5 минут сделать нужные разрезы графиков, а макрос это делает за секунды.
Мне нужен отчет по данным причем очень объемным данным в сжатом виде для принятия управленческих решений и контроля ситуации.
Отчет есть, нужны для наглядности только графики. Т.к. часть данных воспринимается эффективнее с графиками.
Человек этот отчет делает в течении недели и затрачивает более 2-3х рабочих дней на всю обработку.
При этом как получить сгенерированый график в картинке и т.п. без привлечения дизайнеров и т.п. "быстрых" манипуляций уже сделано.
При этом система отправляет все заинтересованным лицам сама отчет по почте. Поэтому и нужно чтобы он отображался в почте верно.

Поэтому прошу подсказать как его отобразить именно в письме автоматически сгенерируемом в коде, не давать непонятно какие "рекомендации"/"советы".
у меня варианты вставки в текс вот так есть, все не работают:




...
1й txt = txt & "<img moz-do-not-send='false' src='op.gif' alt=''><BR><B><FONT size=3 color=blue>" & Cells(j, 1).Value & "</FONT></B>"
2й txt = txt & "<object data='file:///op.gif' type='image/png' width='240' height='320'><BR><B><FONT size=3 color=blue>" & Cells(j, 1).Value & "</FONT></B>"
...

Груб о говоря варианты: писем
<html><body><img src='op.jpg'></body></html>
<html><body><img src='file:///op.jpg'></body></html>
и т.п. не отображают графика в картинке.
С сылкой и с вложение тоже пробывал нет ...
получается в итоге
внизу письма вложение с графиком есть.. по тексту письма ничего...(скин в атаче)


Ingvar

У кого есть идеи?

PS Есть модули для VBA для кодировки картинки в base64?

Ingvar

В общем нашел как сделать, кому интересно, нужно приатачить картинку
при атаче установить индификатор на ресурс внутри письма, после этого в теле письма htmlbody указать ссылку на данный индификатор
и будет счастье.. есть два варианта присоединение картинки атачем:

With CreateObject("cdo.Message")
    set att = objMessage.AddAttachment("C:\pic\pic1.gif", "", "")
   att.Fields.Append "urn:schemas:mailheader:content-id", 200, 100
   att.Fields("urn:schemas:mailheader:content-id").Value = "pic123456789"
   att.Fields.Update
   objMessage.HTMLBody = "<b>" & cns1 & "</b><img src=""cid:pic123456789"">"
    .To = "test@test.ru"
    .From = "test@test.ru"
    .Subject = "test"
    .Send
end with


И второй вариант  присоединение картинки как часть тела письма...
в этом варианте вложенные картинки не будут отображаться как вложения, а в теле письма будут видны.
Для моего случая как раз нужный вариант. В отчет все вставляется и отображается как надо без доп. повторения во вложениях.

Set objMessage = CreateObject("CDO.Message")
.......................'настройки соединения
.......................'параметры письма
objMessage.AddRelatedBodyPart "c:\pic\pic1.jpg", "pic1", 1
objMessage.AddRelatedBodyPart "c:\pic\pic2.jpg", "pic2", 1
objMessage.HTMLBody = "<img src='pic1'><br><br><img src='pic2'>"
objMessage.Send

Ingvar

Т.к. данный вопрос успешно решился тему закрываю.