Как создать файл Word (а также как прочитать содержимое Word документа)


Недавно обратились с пустяковым казалось бы вопросом: как программно работать с документом Word в самом простом режиме. Прочитать содержимое созданного файла. Документация OpenXML Formats SDK хоть и лаконична, но по «программистки» очень суховата. Простых примеров там немного. Вот еще два очень простых примера, опираясь на которые можно будет усложнять алгоритм, и решать реальные задачи:

Как прочитать документ Word:

using System.Linq;

using DocumentFormat.OpenXml.Wordprocessing;

using DocumentFormat.OpenXml.Packaging;

 

 

namespace OpenXMLExample

{

    class Program

    {

        static void Main(string[] args)

        {

            using (WordprocessingDocument doc =WordprocessingDocument.

                Open(@"c:\devel\example.docx",false))

            {

                Table toxmlTable=doc.MainDocumentPart.Document.Body.

                    Elements<Table>().First();

 

                foreach (TableRow row in toxmlTable.Elements<TableRow>())

                {

                    foreach (TableCell cell in row.Elements<TableCell>())

                    {

                        System.Console.WriteLine(cell.InnerText);

                    }

                }

 

                foreach (Paragraph p in doc.MainDocumentPart.Document.Body.

                    Elements<Paragraph>())

                {

                    System.Console.WriteLine(p.InnerText);

                }

            }

        }

    }

}

 

Как создать простой документ Word

using DocumentFormat.OpenXml.Wordprocessing;

using DocumentFormat.OpenXml.Packaging;

using DocumentFormat.OpenXml;

 

namespace OpenXMLExample

{

    class Program

    {

        static void Main(string[] args)

        {

            using (WordprocessingDocument doc = WordprocessingDocument.

                Create(@"c:\devel\worddoc.docx",

                WordprocessingDocumentType.Document))

            {

                Paragraph p = new Paragraph(new Run(new Text("hello word")));

                doc.AddMainDocumentPart();

                doc.MainDocumentPart.Document = new Document();

                doc.MainDocumentPart.Document.Body = new Body();

                doc.MainDocumentPart.Document.Body.Append(p);

                doc.MainDocumentPart.Document.Save();

            }

        }

    }

}

 

Вот так просто с помощью OpenXML Format SDK можно программно работать с документами Word.

 


Comments (4)
  1. Semi says:

    это же относится только к 2007. или ко всем версиям?

  2. Файлы создаются и читаются начиная с версии 2007. Именно с этой версии сохранение по умолчанию ведется в формате OpenXML.

  3. Pavel Svintsov says:

    А OpenXML позволяет так же работать с Excel?

  4. Конечно, с Excel можно работать точно так-же.

Comments are closed.

Skip to main content