Автоматизация Word с OLEDelphi , Технологии , OLE Automation MSOfficeАвтоматизация Word с OLE
Оформил: DeeCo uses comobj; procedure TForm1.Button1Click(Sender: TObject); var Word: OLEVariant; begin try Word := CreateOleObject('Word.Application'); except ShowMessage('Cannot start Word !'); Exit; end; // Show Word Word.Visible := True; // Add a new Document Word.Documents.Add; if Word.ActiveWindow.View.SplitSpecial <> 0 then Word.ActiveWindow.Panes[2].Close; if (Word.ActiveWindow.ActivePane.View.type = 1) or (Word.ActiveWindow.ActivePane.View.type = 2) or (Word.ActiveWindow.ActivePane.View.type = 5) then Word.ActiveWindow.ActivePane.View.type := 3; Word.ActiveWindow.ActivePane.View.SeekView := 9; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True; Word.Selection.ParagraphFormat.Alignment := 1; Word.Selection.TypeText(Text := 'Kohlenhandel Brikett-GmbH & Co.-KG. - Holzweg 16 - 54633 Steinhausen'); if Word.Selection.HeaderFooter.IsHeader = True then Word.ActiveWindow.ActivePane.View.SeekView := 10 else Word.ActiveWindow.ActivePane.View.SeekView := 9; Word.Selection.TypeText(Text := 'Bankverbindung: Stadtsparkasse Steinhausen BLZ 123456789 KtoNr. 782972393243'); Word.ActiveWindow.ActivePane.View.SeekView := 0; Word.Selection.TypeText(Text := Edit2.Text + ' ' + edit1.Text); Word.Selection.TypeParagraph; Word.Selection.TypeText(Text := edit3.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True; Word.Selection.TypeText(Text := edit4.Text + ' ' + edit5.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Arial'; Word.Selection.Font.Size := 14; Word.Selection.Font.Bold := True; Word.Selection.TypeText(Text := Combobox1.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.Font.Name := 'Times New Roman'; Word.Selection.Font.Size := 12; Word.Selection.Font.Bold := True; if radiogroup1.ItemIndex = 0 then Word.Selection.TypeText(Text := 'Sehr geehrter Herr ' + edit1.Text) else Word.Selection.TypeText(Text := 'Sehr geehrte Frau ' + edit1.Text); end; Пример автоматизации Microsoft Word с помощью OLE (Object Linking and Embedding) в Delphi. Код создает новый экземпляр приложения Word, добавляет новый документ и выполняет различные действия, такие как настройка свойств шрифта, вставка текста и форматирование абзацев. Вот разбивка того, что код делает:
Некоторые наблюдения:
Некоторые предложения:
В качестве альтернативных решений можно рассмотреть:
В целом, код довольно сложный и может быть улучшен рефакторингом и оптимизацией. Автоматизация Microsoft Word с использованием OLE (Object Linking and Embedding) позволяет создавать сложные приложения, взаимодействующие с документами Word. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: OLE Automation MSOffice ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |