Приветствую!
Как сделать так, чтобы можно было вносить изменения или всавки цифр, слов в уже готовые документы Word и
Exel. Т.е. xoчу нажатием определённых кнопок в основном окне созданной проги, изменять и вставлять символы
в двух документах (Word и Exel), которые уже давно созданны и активно используются на компе.
Вставка символов в Word и Exel
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Надо в своей программе использовать компоненты, нет под руками Delphi... Что-то типа TWordApplication, TWordDocument... Далее читать справку (обязательно!
), искать методы CreateDocument, Open. Ближе к понедельнику скажу поточнее 



Очень удобно работать с закладками и таблицами в готовых шаблонах. Указываешь либо имя закладки либо "координаты" нужной ячейки (№таблицы, №строки, №столбца) и пишешь туда свое значение. В конечном итоге все завязывается на VBA, все методы от туда.
Ааа, ну конечно предварительно надо создать объект
Компоненты TWordApplication, TWordDocument... не используются, ...
...
Код: Выделить всё
// Открывает указанный документ
procedure TWordDoc.OpenDocuments(AFileName, AConfirmConversions, AReadOnly, AAddToRecentFiles,
APasswordDocument, APasswordTemplate, ARevert,
AWritePasswordDocument, AWritePasswordTemplate : OleVariant;
AFormat : WdOpenFormat; AEncoding, AVisible : OleVariant);
{***
AFileName (!) - имя документа (с путями);
AConfirmConversions - True - показывает окно диалога, если документ не Microsoft Word-формата
- False - не показывает;
AReadOnly - True - открывает документ только для чтения
False - открывает документ для чтения/записи;
AAddToRecentFiles - True - добавляет документ в список последних использованных документов
False - не добавляет;
APasswordDocument - пароль для открываемого документа;
APasswordTemplate - пароль для открываемого шаблона;
ARevert - если открывается уже открытый файл, то
True - отменяет все уже сделанные изменения в открытом документе и переоткрывает его
False - делает активным уже открытый документ;
AWritePasswordDocument - пароль для сохранения изменений в документе;
AWritePasswordTemplate - пароль для сохранения изменений в шаблоне;
AFormat - открывает документ в одном из форматов (default=wdOpenFormatAuto);
AEncoding - код кодирования документа (кодовая страница или набор символов)
Constants for MsoEncoding (default=кодовой странице системы);
AVisible - True - открывает документ как видимый (default)
False - открывает документ как скрытый;
***}
begin
FDoc.Documents.Open(FileName:=AFileName, ConfirmConversions:=AConfirmConversions,
ReadOnly:=AReadOnly, AddToRecentFiles:=AAddToRecentFiles,
PasswordDocument:=APasswordDocument, PasswordTemplate:=APasswordTemplate,
Revert:=ARevert, WritePasswordDocument:=AWritePasswordDocument,
WritePasswordTemplate:=AWritePasswordTemplate, Format:=AFormat,
Encoding:=AEncoding, Visible:=AVisible);
end;
Код: Выделить всё
// Запись значения в ячейку таблицы
procedure TWordDoc.SetCells(ATable, ARow, ACol : Integer; Value: WideString);
begin
FDoc.ActiveDocument.Tables.Item(ATable).Cell(ARow,ACol).Range.Text:=Value;
end;
Код: Выделить всё
// Запись значения в закладку
procedure TWordDoc.SetBookmark(AName : string; AValue : WideString);
begin
FDoc.Selection.GoTo(What:=wdGoToBookmark, Name:=AName);
FDoc.Selection.TypeText(Text:=AValue);
end;
Код: Выделить всё
procedure TWordDoc.DeleteRow(ATable, ARow : integer);
begin
FDoc.ActiveDocument.Tables.Item(ATable).Rows.Item(ARow).Delete;
end;
Код: Выделить всё
type
TWordDoc=class(TObject)
private
FDoc : variant;
...
Код: Выделить всё
// Создание приложения-сервера Word
constructor TWordDoc.Create;
var iuUnknown : IUnknown;
hrResult : HResult;
begin
hrResult:=GetActiveObject(ProgIDToClassID('Word.Application'),nil,iuUnknown);
if (hrResult=MK_E_UNAVAILABLE)
then FDoc:=CreateOleObject('Word.Application')
else FDoc:=GetActiveOleObject('Word.Application');
end;
// Уничтожение приложения-сервера Word
destructor TWordDoc.Destroy;
begin
inherited Destroy;
end;
Код: Выделить всё
uses ComObj, ActiveX, Windows, Variants;
The trurh is out there...