Имя: Пароль:
1C
1С v8
Добавление картинок из 1с8 в Excel
0 bUbA
 
17.09.13
16:10
При выгрузке в ексель надо в ячейки добавлять картинки. Посмотрел как это в макросе выглядит, в интернете глянул. Должно быть что то похожее на ЛистНовый.Pictures.Insert(Путь).Select(); или Эксель.ActiveSheet.Shapes.AddPicture();

но ни AddPicture, ни Pictures я нигде не нашел. В чем проблема может быть? Может есть другой метод?
1 mikecool
 
17.09.13
16:14
Должно быть что то похожее на ЛистНовый.Pictures.Insert(Путь).
- может лучше запустить запись макроса и понять что к чему?
2 бомболюк
 
17.09.13
16:23
все там есть:
Function AddPicture(Filename As String, LinkToFile As MsoTriState, SaveWithDocument As MsoTriState, Left As Single, Top As Single, Width As Single, Height As Single) As Shape
    Member of Excel.Shapes
3 bUbA
 
18.09.13
11:37
Ещё вопрос, добавить их получилось вот так

Excel.ActiveSheet.Cells(НомерСтрокиТаблицы, КоличествоКолонок + 2).Select();
Excel.ActiveSheet.Pictures.Insert(ПутьКФото);
//Excel.ActiveSheet.Pictures.Placement   = 1;
//Excel.ActiveSheet.Pictures.PrintObject = Истина;
Excel.ActiveSheet.Pictures.ShapeRange.Height = Высота;
Excel.ActiveSheet.Pictures.ShapeRange.Width  = Ширина;
Excel.ActiveSheet.Pictures.ShapeRange.PictureFormat.CropLeft   = 5.2;
Excel.ActiveSheet.Pictures.ShapeRange.PictureFormat.CropTop    = 5.2;
Excel.ActiveSheet.Pictures.ShapeRange.PictureFormat.CropBottom = 5.2;
Фото.RowHeight = Высота + 1;

но с ячейками куда они добавляются проблема, часть из низ вставляются в нужные ячейки, а другая часть скидывается в кучу в абсолютно ненужном месте, хотя координаты для select() все правильные
4 dk
 
18.09.13
11:43
синхронизируй top и left ячейки и картинки в этой ячейке
5 bUbA
 
18.09.13
12:01
(4) если речь идет об этом

Excel.ActiveSheet.Cells.Top = Excel.ActiveSheet.Pictures.Top;
Excel.ActiveSheet.Cells.Left = Excel.ActiveSheet.Pictures.Left;

то это не то
6 dk
 
18.09.13
12:23
))
конечно не то
7 bUbA
 
18.09.13
12:24
(6) а можно тогда чуть подробнее?
8 dk
 
18.09.13
12:28
если пропустить твои знания VBA и корявость кода, то что-то вроде

Excel.ActiveSheet.Cells(НомерСтрокиТаблицы, КоличествоКолонок + 2).Select();
Фото1 = Excel.ActiveSheet.Pictures.Insert(ПутьКФото);
Фото1.Top = Excel.ActiveSheet.Cells(НомерСтрокиТаблицы, КоличествоКолонок + 2).Top;
Фото1.Left = Excel.ActiveSheet.Cells(НомерСтрокиТаблицы, КоличествоКолонок + 2).Left;
9 bUbA
 
18.09.13
12:36
(8) ничего не поменялось...
Основная теорема систематики: Новые системы плодят новые проблемы.