有谁遇到过类似的问题:
两个word文档之间进行copy、paste操作时出现以下错误:
此方法或属性无效,因为剪贴板是空的或无效的!
生成服务合同的时候,合同附件有一个服务内容描述,这是需要根据配置不同的产品服务内容都不一样。
从对应的字模板中读出内容显示在合同中。
生成服务合同我用的是Office的COM组件,从子模板中读内容到服务合同,我就用了复制方法。
Range.Copy();
object Nothing = System.Reflection.Missing.Value;
Word.Application attachApp = new Application();
object type = WdBreakType.wdSectionBreakContinuous;
Word.Document attachDoc = attachApp.Documents.Open(ref docFile, 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, ref Nothing);
attachDoc.Select();
attachApp.Selection.WholeStory();
attachDoc.Sections[1].Range.Copy();
object attach_ServiceContent = "attach_ServiceContent";
doc.Bookmarks.get_Item(ref attach_ServiceContent).Range.InsertBreak(ref type);
doc.Bookmarks.get_Item(ref attach_ServiceContent).Range.PasteAndFormat(WdRecoveryType.wdPasteDefault);
attachApp.NormalTemplate.Saved = true;
object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
attachDoc.Close(ref doNotSaveChanges, ref Nothing, ref Nothing);
attachApp.Quit(ref doNotSaveChanges, ref Nothing, ref Nothing);
但是现在不稳定,有时间能生成成功,有时候报错:此方法或属性无效,因为剪贴板是空的或无效的。
我在网上找资料,也没有查出什么结果,有人说是:由于执行上述动作时间不够导致。
如果能捕获这种错误,并进行延时直到它完成这个动作;则能解决这个问题;
但我不知如果才能捕获上述错误;并进行相应处理.
//IDataObject data=Clipboard.GetDataObject();
有些人说用以上的做法,得到剪贴板的内容。
这种做法取到的data为null根本不能达到效果,此时是因为word中的剪切板和系统剪切板并不一样
求助,怎么样得到 Word 剪贴板 的内容,然后判断 Word 剪贴板 是否为空,为空就延时5秒再复制一次。
Office的COM组件很蛋疼的.我那时候搞~生成200多页word要4分钟.最后换到openxml~2秒以下~外部调用很费资源
请问一定要在word 2003上么?
asp.net是服务器端技术,你用C#在服务器端访问剪切板,那要看你服务器的剪切板里面有内容没有了。
想访问客户端的剪切板当然是用客户端技术,JavaScript。。。
@liuhh: 我遇到跟你一摸一样的需求,你是怎么处理好的,求指教。 qq:804390150 感激不尽。
你好,我也遇到了此问题,可以分享一下你是怎么解决的吗?
也可以尝试一下其他方法,比如Spire.Doc 类库,可以实现复制Word文档的功能,好用又方便
https://www.e-iceblue.cn/document/copy-word-document.html