zoukankan      html  css  js  c++  java
  • 如何从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 }

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

  • 相关阅读:
    移动应用安全开发指南(Android)--完结篇
    云存储密钥优化
    [安全分析报告]门磁报警系统破解猜想
    Web安全开发指南--文件系统
    C# 创建execl文件 并且填充数据
    asp.net js 获取服务器控件值
    js 日期天数相加减,格式化yyyy-MM-dd
    js获取当期日期累加天数
    ComboGrid 行内点击编辑内容
    ajax数据显示,使用js通用模板
  • 原文地址:https://www.cnblogs.com/iPeterRex/p/1312070.html
Copyright © 2011-2022 走看看