概述C#单元格数据

最近在做一个项目,其中有一个技术性的难题:“提取Word指定表格中的指定C#单元格数据”。对于像我这样一个仅仅对于C#语法略有了解的学生来说确实让我感到有些力不从心,这真是一个非常非常大的挑战。

登录google,我检索了相当多的文章,从多的500多行的代码到少的不到100行的代码。这些提取数据的方法基本上就那么几种,这些人放在博客上基本上都是你copy我的,我copy你的。现在的有些作者很不负责,拿来一段代码就放上去了。通览这些代码,你会发现有些地方居然用到了作者自定义的类;然而,作者却没有提供给你这些类的实现方法。这样的作者很是气人!还有些作者,在自己的博客上狂贴了几百行的代码,外加一个标题就完了。代码是什么意思,程序整个的实现流程是什么样子的,说都不说。这些代码很多,谁都懒得去看。精辟的文章很少,我百里挑一,经过几个星期的查找和筛选,终于整理出来一套可行的方案。本文通过一个简单的例子,来揭示如何从Word的表格提取指定C#单元格数据的方法。

准备工作:

新建Word文档doc1.doc。绘制表格,并且在表格中插入数据,如下表:
界面设计及程序运行过程界面截图:
说明:通过打开按钮打开文件(将文件路径显示在TextBox控件中)

方法步骤:
1.在引用处引用Microsoft.Office.Interop.Word;
2.使用命名空间Microsoft.Office.Interop.Word和System.Reflection;
3.编写打开按钮代码和读取Word表格按钮事件代码。

因为主要部分在读取Word表格按钮事件代码,因此以下将分享最重要最核心的代码

 
 
 
  1. privatevoidReadTable_Click(objectsender,EventArgse)  
  2. {  
  3. ApplicationClasscls=null;  
  4. Documentdoc=null;  
  5.  
  6. Tabletable=null;  
  7. objectmissing=Missing.Value;  
  8. introwIndex=2,colIndex=1;  
  9.  
  10. objectpath=fileName.Text;  
  11. cls=newApplicationClass();  
  12.  
  13. try  
  14. {  
  15. doc=cls.Documents.Open  
  16. (refpath,refmissing,refmissing,refmissing,  
  17. refmissing,refmissing,refmissing,refmissing,  
  18. refmissing,refmissing,refmissing,refmissing,  
  19. refmissing,refmissing,refmissing,refmissing);  
  20. table=doc.Tables[1];  
  21. stringtext=table.Cell(rowIndex,colIndex).Range.Text.ToString();  
  22. texttext=text.Substring(0,text.Length-2);//去除尾部的mark  
  23. texttextContent.Text=text;  
  24. //textContent.Text=  
  25. MessageBox.Show("Congradulations");  
  26. }  
  27. catch(Exceptionex)  
  28. {  
  29. MessageBox.Show(ex.Message);  
  30. }  
  31. finally  
  32. {  
  33. if(doc!=null)  
  34. doc.Close(refmissing,refmissing,refmissing);  
  35. cls.Quit(refmissing,refmissing,refmissing);  
  36. }  

以上介绍C#单元格数据

【编辑推荐】

  1. C#字符串进行分割
  2. 全面测试C#字符串
  3. C# out和ref传递数组
  4. 浅析C#定义整型数组
  5. C#数据库连接字符串
THE END