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

W

w202

Помогите создать word документ средствами С++, без применения MFC, VCL и прочих каркасных библиотек. Если можно простенький пример с пояснениями.
 

XPEHOMETP

Местный
Регистрация
21 Окт 2005
Сообщения
244
Реакции
62
Credits
0
Файловый формат Word достаточно сложен (это где-то на уровне 2-го Word еще было все просто), для записи в него все равно придется привлекать хотя бы разные DLL из состава MS Office. Проще разобраться с RTF. На всяких сайтах с бесплатным софтом была такая прога - RetroRTF, позволяет по имеющемуся RTF-шаблону создавать свой файл (отчета и т.п.). Вот по ее образцу можно что-нибудь свое сделать.
 
  • Like
Реакции: w202

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
Согласен, rtf - неплохой вариант. Проще всего сгенерить свою незамысловатую шапку у rtf-ки, и небольшой геморой будет с русским - там вроде каждая буква идет как \xy, где xy - аски-код символа. Ну и если надо таблицы, то там есть специфика для разных офисов, и проще их делать для Exel-а в формате csv.
 

nike32

Турист
Регистрация
23 Авг 2006
Сообщения
2
Реакции
0
Credits
4
Можно использовать функции OLE (разумеется, MSWord должен быть установлен).
В Borland C++ Builder так:

Код:
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)
 
Последнее редактирование модератором: