前段时候在为学校做作业抄袭检测系统,当读入大量word文档时经常会出现 所请求的剪切版操作失败,如下图:

以下是读word文档时所用的源代码:

protected void openFile(RichTextBox rtb, string fileNameTemp)
{
try
{
Microsoft.Office.Interop.Word.Application myWordApp =
new Microsoft.Office.Interop.Word.ApplicationClass();
object file = fileNameTemp;
object nullobj = System.Reflection.Missing.Value;
object readOnly = false;
object isVisible = true;
Microsoft.Office.Interop.Word.Document doc = myWordApp.Documents.Open(ref file, ref nullobj, ref readOnly,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref isVisible, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
IDataObject data = Clipboard.GetDataObject();
rtb.Text = data.GetData(DataFormats.Text).ToString();
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭WordApp组件对象
myWordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

 我通过仔细研发现,出现此问题是由于有得word文档中存在一些剪切板没有关闭,所以运行此代码会出错,并且运行此代码后,打开一个.txt文档,按ctrl+v可以张贴出刚刚读过的文档,我以为是由于剪切板没有清空的原因,于是我加入Clipboard.Clear();代码:
              rtb.Text = data.GetData(DataFormats.Text).ToString();
              Clipboard.Clear();
               doc.Close(ref nullobj, ref nullobj, ref nullobj);                //关闭WordApp组件对象                myWordApp.Quit(ref nullobj, ref nullobj, ref nullobj);              }
然而新的问题又出现了,首先弹出:

接着又弹出:

万恶的剪切板!!最后在网上四处查找,终于找到可以不用剪切板来完成读word文档的操作,并且经过测试不再有类似问题。
以下是改善后的代码:
protected void openFile(RichTextBox rtb, string fileNameTemp)
{
try
{
Microsoft.Office.Interop.Word.Application myWordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object file = fileNameTemp;
object nullobj = System.Reflection.Missing.Value;
object readOnly = false;
object isVisible = true;
Microsoft.Office.Interop.Word.Document doc = myWordApp.Documents.Open(ref file, ref nullobj, ref readOnly,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref isVisible, ref nullobj, ref nullobj);
//doc.ActiveWindow.Selection.WholeStory();
//doc.ActiveWindow.Selection.Copy();
doc.Save();
//IDataObject data = Clipboard.GetDataObject();
//rtb.Text = data.GetData(DataFormats.Text).ToString();
rtb.Text = doc.Content.Text;
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭WordApp组件对象
// myWordApp = null;
Clipboard.Clear();
myWordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

欢迎大家转载,如有转载请注明文章来自:   http://blog.csdn.net/q345852047
												

c#频繁读取word文件 所请求的剪切板操作失败 解决方法相关推荐

  1. word打印机显示服务器脱机,电脑中打开word文件时总显示打印机没有响应的解决方法...

    我们经常会使用word来编辑文档,不过近日有不少小伙伴在电脑中打开word文档的时候,却总是显示"打印机没有响应,但是程序可以在没有打印机信息的情况下继续运行,是否继续等待打印机响应?&qu ...

  2. 电脑桌面的word文件丢失了怎么找回?7个解决方法!

    word作为日常办公的文字处理软件,能够满足用户的各种文档处理需求,而在电脑长期使用过程中,难免会因为各种原因导致word文件丢失,那么电脑桌面的word文件丢失了怎么找回呢?针对用户的这个疑惑,下面 ...

  3. 阿瑞斯病毒服务器维护,阿瑞斯病毒请求超时怎么办 登陆超时失败解决方法

    ­ 阿瑞斯病毒作为一款末日题材的生存类手游,受到了广大玩家的一致好评,但是有一些小伙伴表示自己在登陆游戏时发生了一些问题,例如阿瑞斯病毒请求超时怎么办呢?莫慌快随小编一起走进登陆超时失败解决方法一览了 ...

  4. java读取excel文件单元格英文出现乱码问题的解决方法

    小编今天测试读取excel文件,并且取其中的几个单元格作为文件名称的时候,发现文件名出现了乱码,毫无疑问,肯定就是读取excel的时候,取出来就出现了乱码,如图所示 excel原单元格数据,如图所示 ...

  5. R语言读取csv文件,第一列列名出现乱码的解决方法

    在利用R语言读取csv文件时,第一列列名总是出现乱码,代码如下: setwd("E:\2.Model\4. Simulation") #设定文件路径 All.Soils = rea ...

  6. Java读取word文件,字体,颜色

    在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性.但由于需要,要把doc文档中的内容(字体,下 ...

  7. POI读取word文件,(支持HSSF和XSSF两种方式)

    POI读取word文件,(支持HSSF和XSSF两种方式) 参考:HSSF,XSSF,SXSSF三种方式 1.引用maven(版本必须一致) <dependency><groupId ...

  8. 使用python读取word文件里的表格信息

    在企查查查询企业信息的时候,得到了一些word文件,里面有些控股企业的数据放在表格里,需要我们将其提取出来. word文件看起来很复杂,不方便进行结构化.实际上,一个word文档中大概有这么几种类型的 ...

  9. java准确读取word文件页数

    转自:https://blog.csdn.net/tiandixuanwuliang/article/details/71298406 由于本人在做一个网上打印网站,遇到了一个需求是"准确读 ...

最新文章

  1. hibernate join fetch
  2. java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表
  3. orcal 数据库密码修改(表密码,sys密码,system密码)
  4. Python导出Excel图表
  5. Spire.XLS 教程:从C#的Excel形状中提取文本和图像
  6. boost::geometry::strategy::simplify::douglas_peucker用法的测试程序
  7. HDU - Dogs' Candies
  8. Player启动时提示 System.InvalidOperationException:无法加载计数器名称数据
  9. 《音频、图像及视频技术》学习笔记
  10. 编写在浏览器中不弹出警告的ActiveX控件
  11. Docker学习总结(45)——Docker在沪江落地的实践
  12. 移动营业厅前台设备如何安装+新手引导
  13. 计算机笔记本怎么保存文件,怎么将电脑上的文件保存在QQ邮箱?
  14. 微信公众号开发模式开启总结
  15. CSS如何实现垂直水平居中**********?
  16. python爬豆瓣top250书籍_python爬虫练习-爬取豆瓣图书top250
  17. rror: [$injector:unpr] http...r?p0=contentCategoryServicePro错误解决方案
  18. 干货 I 用数据分析进行“无死角”的复盘?
  19. 病毒、蠕虫和木马的区别
  20. CS5216 DP to hdmi 1080p转换器或者转接线设计原理

热门文章

  1. 轨道交通信号系统的可靠性与安全性
  2. LibreOJ2302 - 「NOI2017」整数
  3. Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解)(转载)
  4. centos下搭建sockets5代理
  5. 整数在计算机中是如何存储的?
  6. 《Metasploit 魔鬼训练营》04 Web 应用渗透测试
  7. 向量,标量对向量求导数
  8. 提高论文写作能力必看
  9. 数理方程的求解——定解问题的介绍
  10. Mac截图默认存储位置修改