Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2010, 06:44   #1
Zamozhskiy
 
Регистрация: 02.12.2010
Сообщений: 8
По умолчанию Присвоить ячейку таблицы Word PictireBox'у

Собственно проблема, есть таблица в документе Word, в таблице ячейка, в ячейки картинки и формулы.
Необходимо содержимое ячейки присвоить PictureBox'у.
Пробовал CopyAsPicture, но этот метод возвращает в буфер обмена html а не bmp.
Пишу в VS 2010
Код:
DIM oWord AS Microsoft.Office.Interop.Word.Application = New Microsoft.Office.Interop.Word.Application
        oWord.Documents.OPEN("C:\test\test3.doc")
        oWord.ActiveDocument.Tables(1).Cell(2, 2).Range.CopyAsPicture()
        PictureBox1.Image = My.Computer.Clipboard.GetImage()
        oWord.Documents.CLOSE()
        oWord.Quit()
Zamozhskiy вне форума Ответить с цитированием
Старый 14.12.2010, 21:48   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

В данном случае можно и нужно обходится без буфера. У каждого Range есть объект EnhMetaFileBits, который содержит отображаемую на экране картинку. Вот с ней и нужно работать. Примера под рукой нет, но в сети видел
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 20.12.2010, 15:17   #3
Zamozhskiy
 
Регистрация: 02.12.2010
Сообщений: 8
По умолчанию Спасибо, помогло

Большое спасибо!!! Разобрался вот, что получилось:
Код:
 Dim oWord As Microsoft.Office.Interop.Word.Application = New Microsoft.Office.Interop.Word.Application
        Dim img As Image
        Dim stream As System.IO.MemoryStream
        Dim bytes() As Byte
        oWord.Documents.Open("C:\test\test3.doc")
        ' oWord.Visible = True
        bytes = oWord.ActiveDocument.Tables(1).Cell(1, 2).Range.EnhMetaFileBits
        stream = New System.IO.MemoryStream(bytes)
        img = Image.FromStream(stream)
        PictureBox1.Image = img
        oWord.Documents.Close()
        oWord.Quit()
С наступающим Новым Годом!

Последний раз редактировалось Zamozhskiy; 20.12.2010 в 16:16.
Zamozhskiy вне форума Ответить с цитированием
Старый 27.01.2011, 12:37   #4
Zamozhskiy
 
Регистрация: 02.12.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
В данном случае можно и нужно обходится без буфера. У каждого Range есть объект EnhMetaFileBits, который содержит отображаемую на экране картинку. Вот с ней и нужно работать. Примера под рукой нет, но в сети видел
EnhMetaFileBit - делает копию картинки, но почему - то с символом кубика в конце строки, как это исправить?
Изображения
Тип файла: jpg Снимок.JPG (10.2 Кб, 79 просмотров)
Zamozhskiy вне форума Ответить с цитированием
Старый 27.01.2011, 18:26   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,061
По умолчанию

попробуйте в строке
bytes = oWord.ActiveDocument.Tables(1).Cell (1, 2).Range.EnhMetaFileBits
откинуть один знак, последний знак
А у Вас PictureBox на форме или просто в документе, спрашиваю так как Ворд видимо у меня урезанный, его нет, если у Вас в документе приложите пжл образец в файле с PictureBox
Ципихович Эндрю вне форума Ответить с цитированием
Старый 08.02.2011, 21:42   #6
Zamozhskiy
 
Регистрация: 02.12.2010
Сообщений: 8
По умолчанию

Спасибо огромное за советы. Так и реализовано при помощи viter.alex. Спасибо всем.
Zamozhskiy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить ячейку на буквы и присвоить каждой букве число Apostolx Microsoft Office Excel 8 10.02.2012 10:17
Присвоить ячейку таблицы Word PictireBox'у Zamozhskiy Microsoft Office Word 0 02.12.2010 06:05
присвоить идентификационный номер документу word gkgoro Microsoft Office Word 7 14.09.2010 22:42
присвоить переменной значение поля в последней записи таблицы KaimNotark БД в Delphi 1 03.02.2010 07:21
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17