为了账号安全,请及时绑定邮箱和手机立即绑定

【求助】asp.net 中 怎么样得到 Word 剪贴板 的内容?

【求助】asp.net 中 怎么样得到 Word 剪贴板 的内容?

蛊毒传说 2018-12-06 16:19:50
有谁遇到过类似的问题:两个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秒再复制一次。
查看完整描述

8 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

我要得到的是 word 的剪贴板不是客户端的剪贴板,我的word 是生成好之后保存存在服务端的,客户端还有一个下载功能,并不是保存在客户端的。
查看完整回答
反对 回复 2019-01-21
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

你想让客户端下载这个word是么?那弄一个专门的下载页面,就行了,跟剪切板有什么关系?难道你是想先把服务器上这个word文件先复制,然后返回给客户端?如果是这想法的话,还是先去学习一下基础。
查看完整回答
反对 回复 2019-01-21
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

呵呵,可能我的意思没有表达清楚,我要实现的功能是在线生成word格式的 合同文档;这个合同文档中包含附件1,附件2等区域,而附件1,附件2等是也都是保存在服务端的word文件,需要通过office组件去读取这些附件word文档,然后把读取到的附件word文档的数据添加到合同文档中去,最后整合成一个完整的word文档, 生成好之后提供给客户端下载,这其中就涉及到两个word文档之间进行copy、paste操作,而我这个问题就是在2个word文档之间进行copy、paste操作中遇到的。。。
----------------------------------------------------------
例如我现在有2个word文件; 第一个word文件叫 【合同.doc】;第二个文档叫 【附件.doc】;【合同.doc】有一个区域为 显示附件的。我现在要做的就是 通过 office组件读取【附件.doc】然后把读取到的数据粘贴到 【合同.doc】的附件区域,这样就跟 word中的剪切板产生关系了;貌似贴出的代码里就可以看到。。。 不知道我这样解释是否清楚?
查看完整回答
反对 回复 2019-01-21
?
守候你守候我

TA贡献1802条经验 获得超10个赞

那是OFFICE组件的事情了,应该跟剪切板也没什么关系,你仔细看看OFFICE的组建里面提供的API吧,然后拼接到一块儿以后生成临时文件放到你的某个目录下,然后供客户端下载。
查看完整回答
反对 回复 2019-01-21
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

你好,我也遇到了此问题,可以分享一下你是怎么解决的吗?

查看完整回答
反对 回复 2019-01-21
  • 8 回答
  • 0 关注
  • 327 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信