подскажите пжл где можно прочитать про позднее связывание с Wordom, если можно не на уровне простого открытия документа, а с примером работы с объектами Selection или Range активного документа
пытаюсь сам слдующим образом(поиск текста)
но при работе появляется ошибка "Exception has been thrown by the target of an invocation. mscorlib" которая как я думаю связанна с неверным указанием последнего параметра
методом проб и ошибок опредедлил что поиск надо делать таким образом:
object oFind = selection.GetType().InvokeMember("Find",BindingFlags.GetProperty,null,selection,null);
oFind.GetType().InvokeMember("Text", BindingFlags.SetProperty, null, oFind, new object[] { "GU3" });
object resExecute = oFind.GetType().InvokeMember("Execute", BindingFlags.InvokeMethod, null, oFind, null);
но первоначальный вопрос остается открытым.
Неужели никто не работал с Wordom посредством позднего связывания?
Здравствуйте, vehfl, Вы писали:
V>подскажите пжл где можно прочитать про позднее связывание с Wordom, если можно не на уровне простого открытия документа, а с примером работы с объектами Selection или Range активного документа V>пытаюсь сам слдующим образом(поиск текста)
V>string findstr = "G071"; V>object selection = wordDocuments.GetType().InvokeMember("Selection", BindingFlags.GetProperty, null, oWord, null); V>selection.GetType().InvokeMember("Text", BindingFlags.GetProperty, null, selection, new object[] { findstr}); V>selection.GetType().InvokeMember("Find", BindingFlags.InvokeMethod, null, selection, null);
V>но при работе появляется ошибка "Exception has been thrown by the target of an invocation. mscorlib" которая как я думаю связанна с неверным указанием последнего параметра
BTW, При работе с M$ Office' вскими весчЪами, для уяснения че там твориться-то, пользуйтесь:
П.м. "Сервис" -> "Макрос" -> "Начать запись..."
и тогда вопросы типа: "...как установить перенос строк в ячейке..." и т.п. решаться в процессе набора
E_S>Ну а перевести на C# — это просто.
E_S>BTW, При работе с M$ Office' вскими весчЪами, для уяснения че там твориться-то, пользуйтесь: E_S>П.м. "Сервис" -> "Макрос" -> "Начать запись..." E_S>и тогда вопросы типа: "...как установить перенос строк в ячейке..." и т.п. решаться в процессе набора
к сожалению не все так просто(((... это в Дельфи(Билдере) можно на этапе написания кода объявить переменную типа OleVariant и на этом же этапе писать вызовы функций и устанавливать(получать) свойства по аналогии с VBA в c# так не получается(((...
SelectRow делаю так: selection.GetType().InvokeMember("SelectRow", BindingFlags.InvokeMethod, null, selection, null);
а вот как сделать Selection.Cells(4).Range.Text = "fg" не понимаю, а еще лучше как получить значение Selection.Cells(4).Range.Text
Re[2]: Word позднее связывание
От:
Аноним
Дата:
01.11.06 08:52
Оценка:
[quote]
к сожалению не все так просто(((
[/quote]
Да ну... Я свою библиотеку для M$ Excel (позднее связывание) из билдера перевел на C# без проблем...
4 example
BCB
V>а как порлучить аналог следующекого корректного кода на VBA:
V>Selection.SelectRow V>Selection.Cells(4).Range.Text = "fg"
V>SelectRow делаю так: selection.GetType().InvokeMember("SelectRow", BindingFlags.InvokeMethod, null, selection, null); V>а вот как сделать Selection.Cells(4).Range.Text = "fg" не понимаю, а еще лучше как получить значение V>Selection.Cells(4).Range.Text
сам же и отвечу)... получение значения Selection.Cells(4).Range.Text
E_S>Да ну... Я свою библиотеку для M$ Excel (позднее связывание) из билдера перевел на C# без проблем...
есть подозрение что трудности возникали в моей голове)))... я не совсем точно понимал принципы и невнимательно читал хелп VBA в части определениячто является свойством, а что методом(например Item я по аналогии в delphi полагал что это ствойство, соотвественно обращался к нему c помощью GetProperties а не через InvokeMethod)
Здравствуйте, vehfl, Вы писали:
V> к сожалению вопрос остается открытым
А что мешает написать код работы с вордом на любом другом языке с поддержкой позднего связывания?
При желании, на финальном этапе можно объединить все "лишнме" сборки в одну
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.