Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизOLE-автоматизация Ворда и закладки Найти похожие ветки
← →
ИМХО © (2004-06-21 18:04) [0]Кто имеет опыт автоматизации Ворда?
Задача такая: нужно из вордовского файла вырвать кусок, связанный с определенной закладкой. Открыл файл, нашел названия всех закладок, но как взять этот кусок между закладкой A и закладкой B?
← →
YurikGL © (2004-06-21 18:20) [1]Можно код, про закладки. Может чем помогу.
З.Ы. Опыт автоматизации ворда есть.
← →
ИМХО © (2004-06-21 18:36) [2]Вот:
try
WD := GetActiveOleObject("Word.Application");
except
WD := CreateOleObject("Word.Application");
end;
WD.Visible := False;
WD.Documents.Open(File_Name);
BookM_Count := WD.ActiveDocument.Bookmarks.Count;
if BookM_Count > 0 then
for I := 1 to BookM_Count do
BookmarksListBox.Items.Add(WD.ActiveDocument.Bookmarks.Item(I).Name);
if BookM_Count > 0 then
for I := 1 to BookM_Count do begin
Pos := WD.ActiveDocument.Bookmarks.Item(I).Start;
Pos2 := WD.ActiveDocument.Bookmarks.Item(I).End;
myRange := WD.ActiveDocument.Range(Pos, Pos2);
ShowMessage(WD.ActiveDocument.Bookmarks.Item(I).Name + ": " + IntToStr(Pos)
+ ", " + IntToStr(Pos2));
end;
WD.ActiveDocument.Close;
WD.Quit;
WD := Null;
← →
YurikGL © (2004-06-21 18:40) [3]Уже сделал выбирает текст между закладкой z1 и z2
procedure TForm1.Button2Click(Sender: TObject);
var
vr1,vr4,r1,r2:olevariant;
begin
vr1:=wdGoToBookmark;
WordApplication1.Connect;
vr4:="z1";
r1:=WordApplication1.Selection.GoTo_(vr1,EmptyParam,EmptyParam,vr4).Start;
vr4:="z2";
r2:=WordApplication1.Selection.GoTo_(vr1,EmptyParam,EmptyParam,vr4).Start;
WordApplication1.ActiveDocument.Range(r1,r2).select;
WordApplication1.Disconnect;
end;
← →
YurikGL © (2004-06-21 19:07) [4]ИМХО, получилось?
← →
ИМХО © (2004-06-21 19:27) [5]Я этим компонентом вообще не пользуюсь... Можно как-то через CreateOleObject?
← →
YurikGL © (2004-06-21 19:51) [6]app := CreateOleObject("Word.Application");
App.Visible := True;
...
грузим нужный файл
...
vr4:="з1";
vr1:=wdGoToBookmark;
r1:=app.Selection.GoTo(vr1,EmptyParam,EmptyParam,vr4).Start;
vr4:="з2";
r2:=app.Selection.GoTo(vr1,EmptyParam,EmptyParam,vr4).Start;
app.ActiveDocument.Range(r1,r2).select;
Кстати, через wordapplication быстрее работает, хотя и глючнее.
← →
YurikGL © (2004-06-21 19:56) [7][3] и [6] найди два отличия :)
← →
ИМХО © (2004-06-21 20:58) [8]А как можно выбранный кусок отдельно сохранить?
Спасибо.
← →
YurikGL © (2004-06-21 21:55) [9]Теперь выбранному куску тексту сооветствует объект selection.
Можно через буфер в другой документ selection.copy и selection.paste.
← →
YurikGL © (2004-06-21 22:01) [10]Хотя можешь попытаться скопировать selection в переменную. Сам selection - 4-х байтный указатель.
← →
YurikGL © (2004-06-21 22:06) [11]Если нужен только текст, то Selection.Text:widestring попробуй.
Memo1.Text:=app.selection.text; прокатило.
← →
ИМХО © (2004-06-21 22:33) [12]Спасибо, сейчас попробую.
← →
YurikGL © (2004-06-21 22:37) [13]
> ИМХО
Эксклюзивно для тебя, если пользовать TWordapplication, то по ctrl+пробел он показывает массу интересных функций и пропертив, включая их тип. Пошарься сам, - много найдешь.
← →
YurikGL © (2004-06-21 22:41) [14]
> ИМХО
Пользуясь случаем, ИМХО, напиши мне свой e-mail на YurikGL(собака)newmail.ru
Просьба модераторам, пожалуйста, не удаляйте сообщение, пока ИМХО что-нибудь не ответить.
← →
ИМХО © (2004-06-21 22:46) [15]Но насколько мне известно, Борланд импортировал далеко не все функции и процедуры от Мелкософта. Я еще смотрю Microsoft Word Visual Basic Reference.
← →
ИМХО © (2004-06-21 22:47) [16]Написал.
← →
YurikGL © (2004-06-21 22:49) [17]
> ИМХО © (21.06.04 22:46) [15]
Пробовал я пользовать> Visual Basic Reference. В основном неудачно. Две трети полезный функций нашел через макросы, треть через [13].
Это, конечно, не считая всяких example-в
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c