如何从MS Word的表格中提取指定单元格的数据

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

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

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

Id

Name

1

Wulei

2

Jack

 

 

 

 

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

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

打开刚刚建立的文件doc1.doc

读取第二行第1列数据,显示在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  }

 

代码比较简单,相信大家都能看明白。

 

转载于:https://www.cnblogs.com/iPeterRex/archive/2008/10/15/1312070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值