После некоторой путаницы, я думаю, я заставил его работать:
%# open Word
Word = actxserver('Word.Application');
Word.Visible = true;
%# create new document
doc = Word.Documents.Add;
%# set caption style for tables
t = Word.CaptionLabels.Item(2); %# 1:Figure, 2:Table, 3:Equation
t.NumberStyle = 0; %# wdCaptionNumberStyleArabic
t.IncludeChapterNumber = false;
t.ChapterStyleLevel = 1;
t.Separator = 0; %# wdSeparatorHyphen
%# insert table caption for current selection
Word.Selection.InsertCaption('Table', '', '', 0, false) %# wdCaptionPositionAbove
%# save document, then close
doc.SaveAs2( fullfile(pwd,'file.docx') )
doc.Close(false)
%# quit and cleanup
Word.Quit
Word.delete
Обратитесь к документации MSDN, чтобы узнать, как использовать этот API.Например, порядок аргументов функции InsertCaption , использованной выше.
Обратите внимание, что мне пришлось установить IncludeChapterNumber
в значение false, иначе Word печатал "Error! No text of specified style in document"
внутри текста заголовка...
Наконец, чтобы узнать целочисленные значения перечислений wd*
, я использую инструмент ILDASM для разборки сборок Office Interop (как и это решение предложено).Просто скопируйте все это в текстовый файл и найдите искомые строки.