OpenXML SDK - преобразование C # в C ++ / CLI - созданный файл поврежден и не может быть открыт - PullRequest
1 голос
/ 05 мая 2011

Я пытаюсь написать простое приложение hello world на C ++ / CLI для создания документа Word, который я разместил ниже

int main(array<String^>^ args)
{
    String^ documentFileName=L"Hello4.docx";
    WordprocessingDocument ^myDoc = WordprocessingDocument::Create(documentFileName, WordprocessingDocumentType::MacroEnabledDocument);
    MainDocumentPart^ mainPart = myDoc->AddMainDocumentPart();
    mainPart->Document  = gcnew Document();
    Body^ body = gcnew Body();
    Paragraph^ paragraph = gcnew Paragraph();
    Run^ run_paragraph = gcnew Run();
    DocumentFormat::OpenXml::Wordprocessing::Text^ text_paragraph = gcnew DocumentFormat::OpenXml::Wordprocessing::Text(L"Hello ..asdks");
    run_paragraph->Append(text_paragraph);
    paragraph->Append(run_paragraph);
    body->Append(paragraph);
    mainPart->Document->Append(body);
    mainPart->Document->Save();

    return 0;
}

Приведенная выше программа создает файл hello.docx, но я не могу открыть созданный файл, поскольку он поврежден.

Заранее спасибо

1 Ответ

0 голосов
/ 06 мая 2011

Попробуйте использовать локальную переменную вместо чтения из свойства.например,

doc = gcnew Document();
mainPart->Document = doc;

//...

doc->Append(body);
doc->Save();
...