Чтение данных из WORDовского дока

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Чтение данных из WORDовского дока

Сообщение SKYS » 29.10.2007 (Пн) 7:25

Имеется doc файл в котором присутствует как просто текст так и 2 таблицы

так вот мне необходимо считать в массив следующие строки текста и ячейки таблицы

7 строка -полностью
с 1 таблицы яцейка 5,2(5 строка 2 столбец) и 7,2


голова ща взорвется не могу понять как это сделать
Хорошо когда не знаеш да еще забудеш !!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.10.2007 (Пн) 8:32

Напрямую никак, только открыв его в Word, далее смотреть объектную модель Word.
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 29.10.2007 (Пн) 9:21

я програмно открываю ворд . Но как мне вытащить оттуда данные ума не приложу внести изменения в документ получается (дополнить) а вот получить данные никак
Хорошо когда не знаеш да еще забудеш !!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.10.2007 (Пн) 10:35

SKYS писал(а):я програмно открываю ворд .

Каким образом?
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 29.10.2007 (Пн) 11:55

Код: Выделить всё
Dim WordApp As Word.Application '  экземпляр приложения
Dim DocWord As Word.Document'  экземпляр документа

'создаЈм  новый экземпляр Word-a
Set WordApp = New Word.Application

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
WordApp.Visible = True

Set DocWord = WordApp.Documents.Open("C:\DDD.doc")

'активируем его
DocWord.Activate


вот так.
Хорошо когда не знаеш да еще забудеш !!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.10.2007 (Пн) 12:03

Угу... А далее проникаемся существованием объектов Table, Tables для получения/записи данных в таблицы и кучи объектов при помощи которых можно добраться до слов, букв и строк
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 29.10.2007 (Пн) 13:10

а есть пример просто время поджемает на мне еще одна програма висит эту неуспеваю (разбираться некогда ) очень горит.
Хорошо когда не знаеш да еще забудеш !!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.10.2007 (Пн) 14:22

Готового примера под рукой нет (вернее их есть, но он под NET и из него очень много лишнего надо выгребать, а время - деньги). Попользуйся Поиском, здесь на форуме, по теме много писано и сказано
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 30.10.2007 (Вт) 9:52

поиск реализован через гуглю а достоп на гуглю у меня закрыт поэтому может ктото произведет поиск и кинут ссылки. просто очень надо а в интернет ресурсах ограничен.
Хорошо когда не знаеш да еще забудеш !!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.10.2007 (Вт) 10:05

Кнопка Поиск наверху к Google не имеет никакого отношения.
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 30.10.2007 (Вт) 11:14

при нажатии на неё появляется

You (user i4249) are not allowed to access
http://www.google.ru/custom?domains=bbs ... 1%3BDIV%3A%The reason :
You are not in the access list for URL(s) :



вот так .
Хорошо когда не знаеш да еще забудеш !!!!

-=Jaga=-
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 17.10.2007 (Ср) 8:44

Сообщение -=Jaga=- » 30.10.2007 (Вт) 11:18

Вот здесь: http://www.vbstreets.ru/VB/Articles/default.aspx есть статьи по работе с Вордом. Я думаю найдете что исчите.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 30.10.2007 (Вт) 11:53

SKYS
Это не тот поиск. Тот про который тебе говорили, находится в самом верху страницы и красный. Рядом с правилами и FAQ
Подпись проходит рефакторинг

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.10.2007 (Вт) 12:13

Дайте же наконец ссылку человеку :)
Лучший способ понять что-то самому — объяснить это другому.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 30.10.2007 (Вт) 13:30

А я все практикую лечение травами...

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 31.10.2007 (Ср) 4:49

СПАСИБО ВСЕМ за содействие но вчера я последовал совету Viper'a и поковырял свойство tables и вот что я нарыл :
Код: Выделить всё
x = 2
Set v_Excel1 = CreateObject("Excel.Application")
Set v_Wb2 = v_Excel1.Workbooks.Open("d:\2.xls")
For i = 0 To k - 1
    Dim WordApp As Word.Application '  экземпляр приложения
    Dim DocWord As Word.Document '  экземпляр документа
    Dim TableWord As Word.Table

    'создаЈм  новый экземпляр Word-a
    Set WordApp = New Word.Application
    'определяем видимость Word-a по True - видимый,
    'по False - не видимый (работает только ядро)
    WordApp.Visible = False

    Set DocWord = WordApp.Documents.Open(mm(i))
    'активируем его
    DocWord.Activate
    a1 = text1.Text & DocWord.Range(350, 409) & Chr(13) & Chr(10)
    DocWord.Tables(1).Select
    a2 = DocWord.Tables(1).Cell(5, 2).Range.Text
    a3 = DocWord.Tables(1).Cell(7, 2).Range.Text
    h1 = InStr(a1, "фактура")
    h = InStr(a3, "Топкинский цемент")
    If h1 <> 0 And h = 0 Then
    DocWord.Tables(2).Select
    a = DocWord.Tables(2).Rows.Count
    For j = 3 To a - 1
v_Excel1.Range("a" & x) = a1
v_Excel1.Range("b" & x) = a2
v_Excel1.Range("c" & x) = a3
v_Excel1.Range("d" & x) = DocWord.Tables(2).Cell(j, 1).Range.Text
v_Excel1.Range("e" & x) = DocWord.Tables(2).Cell(j, 3).Range.Text
v_Excel1.Range("f" & x) = DocWord.Tables(2).Cell(j, 4).Range.Text
v_Excel1.Range("j" & x) = DocWord.Tables(2).Cell(j, 5).Range.Text
x = x + 1
Next j
End If
DocWord.Close True
'закрываем Word (без запроса на сохранение)
WordApp.Quit True
'уничтожаем обьект - документ
Set DocWord = Nothing
'уничтожаем обьект - Word
Set WordApp = Nothing

DoEvents
Label1.Caption = i & "   из  " & k
Next i
v_Wb2.Close True
v_Excel1.Quit
Set v_Wb2 = Nothing
Set v_Excel1 = Nothing
MsgBox "Готово"


Этим способом я вытаскиваю нужную мне информацию в excel .
Может кому пригодится :)
Хорошо когда не знаеш да еще забудеш !!!!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Сообщение BION » 31.10.2007 (Ср) 9:16

А у меня вопрос...
Как из одного дога все содержимое перекинуть в другой дог, т.е. со всеми таблицами стилями и т.д.? Я и таг и сяг, никаг.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.10.2007 (Ср) 10:39

Показывай как так, и сяк тож показывай
Весь мир матрица, а мы в нем потоки байтов!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 31.10.2007 (Ср) 11:14

BION писал(а):А у меня вопрос...
Как из одного дога все содержимое перекинуть в другой дог, т.е. со всеми таблицами стилями и т.д.? Я и таг и сяг, никаг.


Тебе необходимо добавить в существующий док или сделать идентичный (такой же)?

Если такойже то просто скопируй ну скажем с помощью FSO .

А если добавить к уже существующему доку то тогда
1. Читай формат исходного дока
2. Применяй этот формат при добавлении данных в имеющийся док.
Хорошо когда не знаеш да еще забудеш !!!!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 31.10.2007 (Ср) 11:37

короче наверно поможет
Код: Выделить всё
ActiveDocument.Content.Copy

это я на вскидку ....
если надо таблички просто покопировать ... например так:
Код: Выделить всё
ActiveDocument.Content.Tables(1).Copy

тоже навскидку .... может и не работать :))) но суть думаю ясна...
можно пробывать через
Код: Выделить всё
Объект.Select
Copy
'... уходим в другой док и ...
Paste


С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 42

    TopList