Помогите создать word документ

w202

New member
Joined
Jan 28, 2006
Messages
3
Reaction score
0
Age
49
Location
Russia
Помогите создать word документ средствами С++, без применения MFC, VCL и прочих каркасных библиотек. Если можно простенький пример с пояснениями.
 

XPEHOMETP

Member
Joined
Oct 21, 2005
Messages
245
Reaction score
58
Age
62
Location
С.-Петербург
Файловый формат Word достаточно сложен (это где-то на уровне 2-го Word еще было все просто), для записи в него все равно придется привлекать хотя бы разные DLL из состава MS Office. Проще разобраться с RTF. На всяких сайтах с бесплатным софтом была такая прога - RetroRTF, позволяет по имеющемуся RTF-шаблону создавать свой файл (отчета и т.п.). Вот по ее образцу можно что-нибудь свое сделать.
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Согласен, rtf - неплохой вариант. Проще всего сгенерить свою незамысловатую шапку у rtf-ки, и небольшой геморой будет с русским - там вроде каждая буква идет как \xy, где xy - аски-код символа. Ну и если надо таблицы, то там есть специфика для разных офисов, и проще их делать для Exel-а в формате csv.
 

nike32

New member
Joined
Aug 23, 2006
Messages
2
Reaction score
0
Location
Москва
Можно использовать функции OLE (разумеется, MSWord должен быть установлен).
В Borland C++ Builder так:

Code:
Variant word_app, word_docs, word_doc;
OleVariant EmptyParam;
word_app= Variant::CreateObject("word.application");
if (!word_app.IsEmpty())
{
    word_app.OlePropertySet("Visible", true);
    word_docs= word_app.OlePropertyGet("Documents");
    word_doc= word_docs.OleFunction("Add", "", (Variant)false,    0/*wdNewBlankDocument*/, (Variant)true);
}

Конечно, не слишком удобно каждый раз писать такие длинные конструкции, но по-другому не получится.
VCL здесь не участвует. Дополнительно ничего подключать не нужно.
Синтаксис функции, создающей в Word новый документ, такой:
expression.Add(Template, NewTemplate, DocumentType, Visible) (справка Word VBA)
 
Last edited by a moderator:
Top