Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 828

•  TDictionary Custom Sort  6 822

•  Fast Watermark Sources  6 603

•  3D Designer  9 568

•  Sik Screen Capture  6 945

•  Patch Maker  7 390

•  Айболит (remote control)  7 337

•  ListBox Drag & Drop  6 196

•  Доска для игры Реверси  98 181

•  Графические эффекты  7 511

•  Рисование по маске  6 795

•  Перетаскивание изображений  5 651

•  Canvas Drawing  6 028

•  Рисование Луны  5 819

•  Поворот изображения  5 270

•  Рисование стержней  3 862

•  Paint on Shape  3 019

•  Генератор кроссвордов  3 974

•  Головоломка Paletto  3 151

•  Теорема Монжа об окружностях  3 986

•  Пазл Numbrix  2 633

•  Заборы и коммивояжеры  3 444

•  Игра HIP  2 360

•  Игра Go (Го)  2 278

•  Симулятор лифта  2 676

•  Программа укладки плитки  2 236

•  Генератор лабиринта  2 791

•  Проверка числового ввода  2 398

•  HEX View  2 733

•  Физический маятник  2 424

 
скрыть

Delphi Sources

Как работать с файлами MS Word или таблицами MS Excel



Автор: Sergey Arkhipov

A: Воспользоваться функцией CreateOLEObject и работать с VBA (Visual Basic for Applications) или WordBasic.

NB: Обратите внимание на то, как устанавливаются именованные параметры у процедур WordBasic'а, например, FileOpen(Name := 'myname.doc');

Пример проверен только на русском Word 7.0! Может, поможет...


unit InWord;
interface
uses
  ...ComCtrls; // Delphi3
...OLEAuto; // Delphi2
[skip]

procedure TPrintForm.MPrintClick(Sender: TObject);
var
  W: Variant;
  S: string;
begin
  S := VarToStr(Table1['Num']); //В D3 без промежуточной записи
  // в var у меня не пошло :(
  try // А вдруг где ошибка :)
    W := CreateOleObject('Word.Basic');
    // Создаем документ по шаблону MyWordDot
    // с указанием пути если он не в папке шаблонов Word
    W.FileNew(Template := 'C:\MyPath\DB\MyWordDot', NewTemplate := 0);
    // Отключение фоновой печати (на LJ5L без этого был пустой лист)
    W.ToolsOptionsPrint(Background := 0);

    // Переходим к закладке Word'a 'Num'
    W.EditGoto('Num');
    W.Insert(S);
    //Сохранение
    W.FileSaveAs('C:\MayPath\Reports\MyReport')
      W.FilePrint(NumCopies := '2'); // Печать 2-х копий
  finally
    W.ToolsOptionsPrint(Background := 1);
    W := UnAssigned;
  end;
end;
{.....}


MyExcel:=CreateOleObject('Excel.Application');  
MyExcel.visible:=true;  
MyExcel.WorkBooks.Add;  
MyExcel.Cells(1,1):='Администрация';