C#实现从Word中提取指定单元格数据

王朝学院·作者佚名  2009-01-16
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

准备工作:

新建Word文档doc1.doc。绘制表格,并且在表格中插入数据,如下表:

界面设计及程序运行过程界面截图:

说明:通过打开按钮打开文件(将文件路径显示在TextBox控件中)

方法步骤:

1.在引用处引用Microsoft.Office.Interop.Word;

2.使用命名空间Microsoft.Office.Interop.Word和System.Reflection;

3.编写打开按钮代码和读取Word表格按钮事件代码。

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

1 private void ReadTable_Click(object sender, EventArgs e)

2 {

3 ApplicationClass cls = null;

4 Document doc = null;

5

6 Table table = null;

7 object missing = Missing.Value;

8 int rowIndex = 2, colIndex = 1;

9

10 object path = fileName.Text;

11 cls = new ApplicationClass();

12

13 try

14 {

15 doc = cls.Documents.Open

16 (ref path, ref missing, ref missing, ref missing,

17 ref missing, ref missing, ref missing, ref missing,

18 ref missing, ref missing, ref missing, ref missing,

19 ref missing, ref missing,ref missing,ref missing);

20 table = doc.Tables[1];

21 string text = table.Cell(rowIndex,colIndex).Range.Text.ToString();

22 text=text.Substring(0, text.Length - 2); //去除尾部的mark

23 textContent.Text = text;

24 //textContent.Text =

25 MessageBox.Show("Congradulations");

26 }

27 catch (Exception ex)

28 {

29 MessageBox.Show(ex.Message);

30 }

31 finally

32 {

33 if (doc != null)

34 doc.Close(ref missing, ref missing, ref missing);

35 cls.Quit(ref missing, ref missing, ref missing);

36 }

37 }

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航