C#word.Documents.Close和wordApp.Documents.Open的问题,为什么运行时提示当前word处于非活动状态的错误

string strContent;
MSWord.Application wordApp; //Word应用程序变量
MSWord.Document wordDoc;
//Word文档变量

wordApp = new MSWord.ApplicationClass();
Object Nothing = Missing.Value;
object Visible = false;
object readOnly = false;

wordDoc = wordApp.Documents.Open(ref wordWay, ref Nothing, ref readOnly, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Visible, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
strContent = "修改时间:" + DateTime.Now.ToString() + "\n";
wordDoc.Paragraphs.Last.Range.Text = strContent;
strContent = "文件被新建\n";
wordDoc.Paragraphs.Last.Range.Text = strContent;
object format = MSWord.WdSaveFormat.wdFormatDocument;

object o = false;
wordApp.Documents.Close(ref o, ref Nothing, ref Nothing);
wordApp.Quit(ref o, ref Nothing, ref Nothing);
如何修改?

你是要创建Word文档吗?
有现成的代码,亲测通过:
private void button1_Click(object sender, EventArgs e)
{
object path; //文件路径变量
string strContent; //文本内容变量
MSWord.Application wordApp; //Word应用程序变量
MSWord.Document wordDoc; //Word文档变量
path = @"C:\MyWord.doc"; //路径
wordApp = new MSWord.ApplicationClass(); //初始化
//如果已存在,则删除
if (File.Exists((string)path))
{
File.Delete((string)path);
}

//由于使用的是COM库,因此有许多变量需要用Missing.Value代替
Object Nothing = Missing.Value;
wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

//WdSaveFormat为Word文档的保存格式
object format = MSWord.WdSaveFormat.wdFormatDocument;

//将wordDoc文档对象的内容保存为DOC文档
wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);

//关闭wordDoc文档对象
wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);

//关闭wordApp组件对象
wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
Console.WriteLine(path + " 创建完毕!");
}追问

创建我那个也可以,但是在向word添加内容的时候,程序出错,提示文件许可权限不够,word弹出一个对话框,有三个选项,以只读方式打开,创建本地副本兵打开等。这个问题一直不知道怎么处理。

追答

如果弹出那个对话框,应当是你已经打开了那个文件,你要再打开的话就会有那样的提示;看看你的代码是否有重复打开或操作的部分;你的是向已经存在的word添加内容?

追问

是的,我每次打开之后都用close和quit关闭了打开的word。但是还是会弹出那个对话框。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-14
应该是你要写入的文档原本就是打开的。对其操作前,请先关闭它,结束打开的文档进程。

C#word.Documents.Close和wordApp.Documents.Open的问题,为什么运行时...
object path; \/\/文件路径变量 string strContent; \/\/文本内容变量 MSWord.Application wordApp; \/\/Word应用程序变量 MSWord.Document wordDoc; \/\/Word文档变量 path = @"C:\\MyWord.doc"; \/\/路径 wordApp = new MSWord.ApplicationClass(); \/\/初始化 \/\/如果已存在,则删除 if ...

我想用c#打开一个word文档,如果这个word文档已经打开了,用c#代码再打开...
C# 判断文件是否被占用的可以用下面的方法 方法一:using System.IO; using System.Runtime.InteropServices; [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")] public static extern bool CloseHandle(IntPt...

c#操作word,Document.Close方法和Application.Quit方法警告该如何解决...
把Word.Application oWord;这句代码改成Word._Application oWord;应该可以了

C#在调用Interop.Word时,程序运行时会启动word.怎么才能让WORD不启动界...
1)在项目中添加引用 Microsoft.Office.Interop.Word 2)代码:using System;using System.Windows.Forms;using MyWord = Microsoft.Office.Interop.Word; \/\/为名称空间起一个别名:MyWord……object missing = System.Reflection.Missing.Value;\/\/ 打开WORDMyWord.Application app = new new MyWord.Appl...

在C#中如何打开一篇Word并对其操作进行评分啊!就是那种考试程序里面的...
public void WordHelp(Microsoft.Office.Interop.Word.ApplicationClass wordapp) { oWordApplic = wordapp; } \/\/ Open a file (the file must exists) and activate it public void Open(string strFileName) { object fileName = strFileName; object readOnly = false; object isVisible = true; oDoc =...

《急》c#在操作word文档时执行了这三句。老提示“序列不包含任何元素...
WordProcessingML 文档的基本文档结构由 document 和 body 元素组成,后跟一个或多个块级元素,如表示段落的 paragraph。一个段落包含一个或多个 run元素。run 代表一段连续文本,它是具有一组共同属性(如格式设置)的文本区域。一段连续文本包含一个或多个 text 元素。text 元素包含一个文本区域。所以...

word vba 用循环批量打开和关闭word文档,怎么才能不在屏幕上刷新?_百 ...
打开的时候给个参数Visible: false 下面这段是C#的代码,VBA的应该类似 Document doc = WPS.Application.Documents.Open(wpsFilename, Visible : false)

C#如果关闭word进程
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("WINWORD")) { p.Kill();}

如何向Word中写入数据,C#.net
C# codepublic bool ExportWord(DataSet ds, string saveFileName) { bool fileSaved = false; object filename = saveFileName; try { Object Nothing = System.Reflection.Missing.Value; \/\/创建Word文档 Word.Application WordApp = new Word.ApplicationClass(); Word.Document WordDoc = WordApp.Documents....

C# 中 打印word文档问题
第一个问题:如果你是绑定了数据或者文件,那么是全部显示的。第二个问题:打印控件里有一个printDocument的控件,可以自定义给打印机发送输出对象。你只要记住:最重要的就是printDocument控件。其他的打印控件都是设置页面啊,大小啊什么的。---你建一个窗体,在窗体中放一个textBox,设置为多行显示的Mul...

相似回答