Word COM - writing text into this open document

26 visualizzazioni (ultimi 30 giorni)
I need to know how to write text into an open Word document. I used this code to open the word application:
word = actxserver('word.application');
set(word,'visible',1);
doc1 = invoke(word.documents,'add');
invoke(doc1.paragraphs,'add');
range = invoke(doc1,'range',doc1.Paragraphs.Item(1).range.Start);
I need to write several lines of text and two plots into this document. How do I do this?

Risposta accettata

Eric
Eric il 17 Feb 2011
Let Word_COM be the COM object associated with MS Word. You can use
Word_COM.Selection.TypeText('string');
Word_COM.Selection.TypeParagraph;
To add some text and a carriage return. Use
Pic = Word_COM.Selection.InlineShapes.AddPicture('picture_filename');
set(Pic, 'ScaleHeight', scale, 'ScaleHeight', scale);
Word_COM.Selection.MoveRight(1);
Word_COM.Selection.TypeParagraph;
To insert a picture (which can be a PNG or some file created from a Matlab figure), adjust the size, and then enter a carriage return.
Good luck,
Eric
  1 Commento
Walter Roberson
Walter Roberson il 4 Set 2018
zhichuan wang comments,
With the following command, I can insert external picture to word.
actx_word_p.application.selection.InlineShapes.AddPicture('D:\Matlab_files\WriteToWordWithMatlab\Fail.png');

Accedi per commentare.

Più risposte (3)

Kaustubha Govind
Kaustubha Govind il 17 Feb 2011
Once you start Word as a COM server from MATLAB, it is basically just a matter of invoking methods from the MS Word COM API. The Reference is here: http://msdn.microsoft.com/en-us/library/ff841702.aspx

Kevin O'Hara
Kevin O'Hara il 17 Feb 2011
Is there example MatLab code that shows me how to add text, such as:
Flight Test Summary - T1-ETN41
Flight Test: T1_ETN41_v3 Flight Date: Oct 21, 2010
Task 68: \Test_Data\T1\000410000\T1_F00041_G0000_T68_Merged_V3.h5 • T1_ETN41_T68_e2.mat • T1_ETN41_T68_e3.mat • T1_ETN41_T68_e4.mat • T1_ETN41_T68_e5.mat • T1_ETN41_T68_e6.mat • T1_ETN41_T68_e7.mat • T1_ETN41_T68_e8.mat • T1_ETN41_T68_e9.mat • T1_ETN41_T68_e10.mat • T1_ETN41_T68_e11.mat • T1_ETN41_T68_e12.mat • T1_ETN41_T68_e13.mat • T1_ETN41_T68_e14.mat
and then a new page

Robert
Robert il 11 Nov 2011
Hello,
I'm also trying to open a certain word-file and to add some graphics. At the moment it is possible to open a certain existing word-document. I would like to ask you to give me an example how to add a new page in this document to add a new graphic. How can I also select a certain page of the word document?
kind regards,
Robert
  1 Commento
Eric
Eric il 23 Nov 2011
To go to a particular page you should be able to use something like:
wdGoToPage = 1;
wdGoToNext = 2;
Word_COM.Selection.GoTo(wdGoToPage, wdGoToNext, 1, desired_page);
where desired_page is the page number you want.
To insert a page break you can use
wdPageBreak = 7;
Word_COM.Selection.InsertBreak(wdPageBreak);
Good luck,
Eric

Accedi per commentare.

Categorie

Scopri di più su Use COM Objects in MATLAB in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by