无法用我的代码打开word文档

时间:2015-12-17 12:36:31

标签: c# ms-word

我尝试使用此代码来更改word文档,但在创建后,word停止工作,我无法理解为什么。

        try
        {
            string filename = Console.ReadLine();
            string openfile = "C:/Users/user/Desktop/" + filename + ".docx";
            FileStream fileStream = File.OpenWrite(openfile);
            StreamWriter writer = new StreamWriter(fileStream);
            string texti = Console.ReadLine();
            writer.Write(texti);
            writer.Close();
            //string information =  "Hello Persistent file ";
            //File.WriteAllText("C:/Users/user/Desktop/ForC#.docx", information);
        }
        catch
        {
            Console.Write("incorrect name");
        }

1 个答案:

答案 0 :(得分:1)

Word文档 - 无论何种类型 - 都不是文本文件。具有docx扩展名的文档是定义Word文档的XML(有时是二进制)文件的ZIP包。需要Word应用程序才能将这些文档视为文档。如果您打开它们并将其编辑为文本文件,它们就会被破坏。

通过使用自动化(“Word.Interop”)来操作Word应用程序,可以通过代码更改docx文件。或者可以使用可以使用Zip包(例如System.IO.Packaging)和XML文件的编程工具来更改它。 Microsoft创建了Open XML SDK,它使用Zip包和XML内容进行抽象,使开发人员更直观。通常,如果要在不与用户交互的情况下更改Word文档,则首选Open XML SDK。

有关在.NET Framework中使用Office的信息,请参阅以下文章,其中包含许多指向更详细信息的链接:     https://support.microsoft.com/en-us/kb/311452

有关Open XML SDK的更多信息:https://msdn.microsoft.com/en-us/library/office/bb448854.aspx