Имя: Пароль:
1C
 
вытащить картинку из файла excel
0 viktorovichvadim
 
13.11.08
15:47
Нужны методы excelя, позволяющие на текущем листе добраться до картинки, на нем расположенной, и скопировать ее в некоторый файл.
1 Fragster
 
гуру
13.11.08
15:47
Согласен, эти методы очень нужны
2 dk
 
13.11.08
15:50
макросы в ехеле запускал?
3 vde69
 
13.11.08
15:50
работа с листами тут http://infostart.ru/profile/6369/blogs/718/ дальше юзаешь колекции самого листа
4 dk
 
13.11.08
15:51
картинки вроде в коллекции shapes хранятся
5 vde69
 
13.11.08
15:51
(0) у екселя в принцепе нету текущего листа, точнее не всегда он есть :)
6 viktorovichvadim
 
13.11.08
15:54
Мне собственно то и нужно имя свойства, содержащего коллекцию картинок текущего листа (ну не силен я в аглицком - юзать справку)
7 Ужас бухгалтера
 
13.11.08
15:54
(0) Открыть Йокселем и использовать метод ИзвлечьКартинки:
http://yoksel.net.ru/Ob%27ektyVstroennogoJazyka/TablichnyjjDokument/Izvlech%27Kartinki

Для преобразования картинки в другой формат можно взять объект "Йоксель.Картинка".
8 dk
 
13.11.08
15:57
хотя щас сунулся в ехель - нифига не смог картинку сохранить в файл :(
9 vde69
 
13.11.08
15:59
(8) ее от туда через контейнер (клиборд) тащить надо,
10 dk
 
13.11.08
16:00
если только сохранить как вэб страницу и выбрать там картинки
11 vde69
 
13.11.08
16:00
(9) ибо формат там бмп и кривой
12 viktorovichvadim
 
13.11.08
16:02
Эксель = ПолучитьCOMОбъект("", "Excel.Application");
Книга = Эксель.WorkBooks.Open(ТекФайл);
ТекЛист = Книга.WorkSheets("Вопрос" + A);

а вот как дальше добраться до картинки, если она есть?

Например, Картинка ТекЛист.Shapes(1) - неправильный вариант
13 Ёпрст
 
гуру
13.11.08
16:03
14 Ужас бухгалтера
 
13.11.08
16:06
(13) Автору ответил уже (в новых версиях Йокселя скрытые строки уже не печатаются). Хм, а что правда тему удалили?...
15 Ёпрст
 
гуру
13.11.08
16:07
(14) Ага, почему, не ясно... Хотя она и с корректным топиком была..
16 Ёпрст
 
гуру
13.11.08
16:08
+14 Мот по условию? Печатать али нет :)
17 viktorovichvadim
 
13.11.08
16:08
помогите вытащить картинку, люди... проверил, коллекция shapes - совсем не то
18 Ужас бухгалтера
 
13.11.08
16:11
(16) Есть настройка печати - выводить или нет. В демо-конфе есть пример.
19 dk
 
13.11.08
16:14
(17) скопировать в какой файл? или все таки сохранить в файл?
если сохранить, то уже сказали что напрямую ехель не позволяет.
можно
1. йоксель
2. буфер обмена
3. html
20 Ужас бухгалтера
 
13.11.08
16:15
(15) Модератору написал, посмотрим, что ответит.
21 viktorovichvadim
 
13.11.08
16:17
товаришчи, я прогаммно из 1с хочу зайти в excel-файлик, пройти по всем листам, и если там есть картинка, сохранить ее (или скопировать) в другой файл. вот такая задачка...
22 dk
 
13.11.08
16:18
в другой excel файл?
23 viktorovichvadim
 
13.11.08
16:23
в файл .bmp
24 dk
 
13.11.08
16:26
(23) см. (19)
25 viktorovichvadim
 
13.11.08
16:39
Попытка
Картинка = ТекЛист.Pictures(1);
Сообщить("на листе " + A + "есть, блин, картинка");
Исключение
КонецПопытки;

Вот так я все-таки добрался до нее... Как теперь в файл закинуть?
26 YHVVH
 
13.11.08
16:41
(15) Черт удалил :-(
27 viktorovichvadim
 
13.11.08
16:54
Подскажите, как сохранить картинку в файл формата "bmp"
28 vde69
 
13.11.08
17:00
With Application.CommandBars.FindControl(msoControlButton)
       'Get the button image and mask of this CommandBarButton object.
       Set picPicture = .Picture
       Set picMask = .Mask
   End With

   'Save the button image and mask in a folder.
   stdole.SavePicture picPicture, "c:\image.bmp"
   stdole.SavePicture picMask, "c:\mask.bmp"


ну для 1с видимо синтаксис будет
Картинка.SavePicture(Картинка, "c:\image.bmp")
29 vde69
 
13.11.08
17:01
(28) но я еще раньше говорил, что типа тут кривость есть, первый параметр - "маска"
30 dk
 
13.11.08
17:10
дык это для картинок на кнопках?
31 vde69
 
13.11.08
17:13
(30) у меня другого не ищет :) вероятно одинаковый подход.
Вообще в екселе нету доступа к обьекту "конва", от этого все траблы... (может у вб формы есть - не смотрел, но у листа нету)
32 viktorovichvadim
 
13.11.08
17:18
Пока вот что выдает...
Метод объекта не обнаружен (SavePicture)
           Картинка.SavePicture("C:\ris", "bmp");
Как я понимаю, нет такого метода. Мда... Есть еще варианты?
ps. имеется ввиду не картинка на кнопке, а просто картинка, как например в файликах xls с тестами профессионал 1с
33 viktorovichvadim
 
13.11.08
17:37
помогите кто-нибудь...
34 viktorovichvadim
 
13.11.08
17:50
спасибо за понимание, товаришчи...
35 Ковычки
 
13.11.08
18:31
а чо тут помогать, все идет легко и не пренужденно
36 sttt
 
13.11.08
22:11
Похоже вопросы на профессионала похакать желает :-)
37 sttt
 
13.11.08
22:13
Макрос запусти и если сможешь сохранить картинку, посмотришь код как эксель это делает
38 viktorovichvadim
 
14.11.08
08:59
о каком макросе речь? че то непонятно...
39 viktorovichvadim
 
14.11.08
10:18
Получается выполнить Картинка.Copy()
Происходит копирование текущей картинки в буфер обмена. Подскажите, как программно из 1с взять ее из буфера и вставить в файл с расширением .bmp
40 Torquader Darigha
 
14.11.08
10:48
В Excel-е картинок нет, есть встроенные объекты, которые хранят данные самого объекта и его WMF (Windows Metafile) представление. Чтобы извлечь картинку из файла проще ещё скопировать в Clipboard и потом вставить в то, что умеет её сохранять.
Видимо, MSPAINT и его "дрессирование" через WScript.Shell SendKeys.
41 Ужас бухгалтера
 
14.11.08
10:53
(40) Есть там картинки, есть. Это я тебе совершенно точно говорю.
42 sttt
 
14.11.08
15:20
Никак, нужно писать самому компоненту или программку ищи из командной строки чтобы буфер сохраняла в файлы
43 sttt
 
14.11.08
15:28
Set WshExtra = CreateObject("WshExtra.Clipboard")
WshExtra.Copy("Запись в буфер обмена")
MsgBox WshExtra.Paste()

http://www.script-coding.info/WshExtra.zip

попробуй может прокатит
44 sttt
 
14.11.08
15:29
(43) и ADOStream
45 YHVVH
 
14.11.08
15:31
а новую версию когда можно скачать?
47 sttt
 
17.11.08
14:24
(0) Если еще актуально то вот:

c:\nircmd.exe clipboard saveimage "c:\temp\clip01.png"

http://www.nirsoft.net/utils/nircmd.zip
48 sttl
 
18.11.08
03:06
(67): "приЙдется"....
Пипец...

Всё! На этом твоё мега-внедрение закончено.
Именно поэтому, увидев в Коммерческом предложении слово "приЙдется" Заказчики блюют, плюются, ржут и выбирают подрядчика, владеющего грамотным русскем языка по-минимуму (по-крайней мере, как минимум, выбирают любого узбека-таджика, получавшего среднее и высшее образование где угодно, но только не в России). Поэтому и франчи рулят!!!
49 Ковычки
 
18.11.08
03:59
абалдели !!!
уже ведь было сказано, сохраняй в веб и успокойся
50 Ковьчки
 
18.11.08
04:01
>>При проведении комплектации оборудования по УУ у меня выходит сообщение
Я имел в виду документ "Комплектация номенклатуры" в которой выбрал комп как выходное изделие и в качестве исходных комплектующих указал монитор системный блок.
51 sttt
 
18.11.08
07:18
(39) "как программно из 1с взять ее из буфера и вставить в файл с расширением .bmp"

(49) Спрашивали, вот и ответил, мне то что :-) он же после (10) спрашивал :-))
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn