Имя: Пароль:
1C
1С v8
Загрузка картинок в excel
0 DrShust
 
26.09.14
11:34
Всем добрый день!
УФ. Суть: есть папка, в которой лежат фотографии. Как эти фото добавить в ячейки Excel? Опыта такого рода нет. Написал обработку, в которой выбирается каталог, где фото лежат + на форме также выбирается папка куда сохранять файл.
Фрагмент кода.
      Excel = Новый COMОбъект("Excel.Application");
      Книга = Excel.WorkBooks.Open(лВременныйФайлЗагрузки); //лВременныйФайлЗагрузки - файл создан на клиенте и отправлен на сервер в модуль объекта
      ЛистГлавный  = Книга.WorkSheets(1);

      НайденныеФайлы = НайтиФайлы(КаталогЗагрузкиФайлов, "*.jpg");
      Если НайденныеФайлы.Количество() > 0 Тогда
          Для каждого _Файл Из НайденныеФайлы Цикл
          
            // В цикл нормально заходит. Если, например, написать ЛистГлавный.Cells(2, 1).Value = "бла-бла-бла";, то в excel'е ячейка запишется.
            // Вопрос: что здесь нужно прописать, чтобы вместо текста в ячейку картинку вставить, т.е. _Файл?
        
          КонецЦикла;
      КонецЕсли;

Заранее спасибо!
1 mehfk
 
26.09.14
11:47
Включи запись макроса в Excel, проделай руками, установи запись макроса, PROFIT!!!
2 mehfk
 
26.09.14
11:47
*останови
3 DrShust
 
26.09.14
11:54
(1) Не совсем понял. Как руками это проделать? В смысле, как добавить картинку-файл в excel?
4 DrShust
 
26.09.14
12:23
Всё? Больше ни у кого нет предложений или вопрос настолько простой?
5 Крошка Ру
 
26.09.14
12:37
(4) Понимаю, тема не совсем стандартная, но гугл ведь о многом может рассказать. Неужели набрать "1с вставить в excel картинку" - это трудно?
6 ilyavorobyev
 
26.09.14
12:38
7 ilyavorobyev
 
26.09.14
12:38
(5) ленивые ппц
8 DrShust
 
26.09.14
12:44
Ну начинается... (5) Вот именно так и набрал: 1с загрузить картинку в excel. (6) В этом примере картинка тянется из 1с. Особой разницы нет? В смысле разницы нет, что файл не из 1С, а из папки?
9 mehfk
 
26.09.14
12:45
(8) Чем ответ в (2) не устроил?
10 ilyavorobyev
 
26.09.14
12:46
(8) и что? нашел файлы делай в двоичные и грузи, пробуй
11 DrShust
 
26.09.14
12:51
(9) Ответ не устроил тем, что я не понял как руками добавить файл .jpg в excel. Соответственно не смог воспроизвести.
12 mehfk
 
26.09.14
12:52
(11) Купи книжку по Excel или прочти справку.
13 ilyavorobyev
 
26.09.14
12:53
(11) не благодари
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    ActiveSheet.Pictures.Insert( _
        "C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg").Select
    Range("R8").Select
End Sub
14 ilyavorobyev
 
26.09.14
12:53
Sub Макрос1()

    ActiveSheet.Pictures.Insert( _
        "C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg").Select
    Range("R8").Select
End Sub
15 DrShust
 
26.09.14
12:55
(10) Пробовал. Но почему-то во время отладки на строке Лист.Shapes.AddPicture(ВременныйФайл, Ложь, Истина, Лево, Верх, 100, 100);
виснет 1С. Ошибки никакой не показывает, просто зависает и всё.
16 ilyavorobyev
 
26.09.14
12:57
(15) если тебе надо один раз выгрузить делай через макрос если постоянно сиди кури как добавить через 1с
17 DrShust
 
26.09.14
13:01
(13) Спасибо!!!!
Верх = ЛистГлавный.Cells(6, 1).Top;                Лево = ЛистГлавный.Cells(6, 1).Left;
Лист.Shapes.AddPicture(лФайл.ПолноеИмя, Ложь, Истина, Лево, Верх, 100, 100);

Теперь буду ковыряться с красотой: размерами и расположением рисунка.

Всех благодарю!
18 DrShust
 
26.09.14
13:08
(17) Извиняюсь за корявость. Примерно так.
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.WorkBooks.Open(лВременныйФайлЗагрузки);
ЛистГлавный = Книга.WorkSheets(1);     
СуществуетКаталог = НайтиФайлы(КаталогЗагрузкиФайлов);
НайденныеФайлы = НайтиФайлы(КаталогЗагрузкиФайлов, "*.jpg");

Если НайденныеФайлы.Количество() > 0 Тогда
     Для каждого ТФайл Из НайденныеФайлы Цикл         
        лФайл = Новый Файл(ТФайл.ПолноеИмя);
        Если лФайл.Существует() Тогда
        Верх = ЛистГлавный.Cells(6, 1).Top;
        Лево = ЛистГлавный.Cells(6, 1).Left;
        ЛистГлавный.Shapes.AddPicture(лФайл.ПолноеИмя, Ложь, Истина, Лево, Верх, 100, 100);
        КонецЕсли;
     КонецЦикла;
КонецЕсли;
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.