我尝试使用此代码来更改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");
}
答案 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