Показать полную графическую версию : Импорт данных из Word в textbox
Доброго времени суток, господа программисты, есть кто шарит в импорте с Word? Импортировать данные только из конкретных поляей, не из таблицы: есть поле и напротив него слова или предложение, вот его то мне и надо получить и вставить в textBoxы. Может подскажете ссылкой пожалуйста!!!!
Используйте Automation.
Импортировать данные только из конкретных поляей, не из таблицы: есть поле и напротив него слова или предложение, вот его то мне и надо получить »
Образец документа. В нём выделите то, что нужно получить.
А можно по подробнее пожалуйста, я просто ни разу не сталкивался с таким
А можно по подробнее пожалуйста, »
Для этого нужно как минимум понять, что означает:
только из конкретных поляей, не из таблицы: есть поле и напротив него слова или предложение »
Я потому и прошу документ с указанным в нём диапазоном.
113104 вот заявка там отмечены поля откуда брать информацию
Ali002, не очень понятно.
Ладно. Возьмём для примера эту часть:
http://img843.imageshack.us/img843/2834/9pc2.png
Как видно, нам надо получить текст, начинающийся сразу следом за первым полем формы и до конца абзаца. Это может выглядеть так (примеры кода будут на VBScript, но перевести их на любой .Net, поняв общий принцип, труда Вам не составит):
Option Explicit
Const wdCollapseEnd = 0
Const wdParagraph = 4
Dim strDocument
Dim objFSO
Dim objWord
Dim objDocument
Dim objRange
strDocument = "E:\Песочница\0375\заявкаq.doc"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDocument) Then
Set objWord = WScript.CreateObject("Word.Application") ' Создаём объект Automation
Set objDocument = objWord.Documents.Open(strDocument) ' Открываем документ
Set objRange = objDocument.FormFields.Item(1).Range ' Получаем диапазон поля формы
objRange.Collapse wdCollapseEnd ' Сворачиваем диапазон к его концу
objRange.MoveEnd wdParagraph, 1 ' Перемещаем конец диапазона к концу абзаца
WScript.Echo objRange.Text ' Получаем и выводим текст
Set objRange = Nothing ' Очищаем объект
objDocument.Close ' Закрываем документ
Set objDocument = Nothing ' Очищаем объект
objWord.Quit ' Закрываем Word
Set objWord = Nothing ' Очищаем объект
Else
WScript.Echo "Source document [" & strDocument & "] not found."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
Можно ориентироваться на номер абзаца, какой-либо опорный текст, оформление и т.п. Главное — найти способ, позволяющий однозначно определять искомый диапазон в документе.
Огромное спасибо, вот только с VBScript я вообще не дружу а есть у вас какой нибудь мануал по импорту с ворда ато в инете вообще нету заискался просто даж обычного примерчика
Не надо дружить. Достаточно просто читать документацию по программному интерфейсу Word.
2003: Microsoft Word Visual Basic Reference (http://msdn.microsoft.com/en-us/library/aa272078(v=office.11).aspx)
2013: Welcome to the Word 2013 developer reference (http://msdn.microsoft.com/en-us/library/office/ee861527(v=office.15).aspx)
Благодарю буду ознакамливаться
Уважаемый Iska, я пытался переделать ваш код в c # но только у меня это не очень получается , вот вы работаете с полями и там доступ к конкретному полю а я не нашел эквивалента Formfields кроме как Range, только вот что то результата ннету помогите пожалста разобраться
Word.Application application = new Word.Application();
Word.Document document = application.Documents.Open("D:zayavka.doc");
Word.Range rng = document.Paragraphs[1].Range;
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
rng.MoveEnd(wdParagraph,1);
name_kompleksTextBox.Text=rng.Text;
rng=null;
document.Close();
// Close word.
application.Quit();
Как видно, нам надо получить текст, начинающийся сразу следом за первым полем формы и до конца абзаца. Это может выглядеть так (примеры кода будут на VBScript, но перевести их на любой .Net, поняв общий принцип, труда Вам не составит):
читать дальше » »
Уважаемый Iska, я пытался переделать ваш код в c # но только у меня это не очень получается , вот вы работаете с полями и там доступ к конкретному полю а я не нашел эквивалента Formfields кроме как Range, только вот что то результата ннету помогите пожалста разобраться
Код:
Word.Application application = new Word.Application();
Word.Document document = application.Documents.Open("D:zayavka.doc");
Word.Range rng = document.Paragraphs[1].Range;
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
rng.MoveEnd(wdParagraph,1);
name_kompleksTextBox.Text=rng.Text;
rng=null;
document.Close();
// Close word.
application.Quit();
Ali002, я не знаком с C#.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.