程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用C#讀取Word表格數據(2)

使用C#讀取Word表格數據(2)

編輯:關於C語言

class WordTableRead
2{
3  private string fileName;
4  private ApplicationClass cls = null;
5  private Document doc = null;
6  private Table table = null;
7  private object missing = Missing.Value;
8  //Word是否處於打開狀態
9  private bool openState;
10
11
12  /**//// <summary>
13  /// 自定義構造方法
14  /// </summary>
15  /// <param name="fileName">包含路徑的文件名</param>
16  public WordTableRead(string fileName)
17  {
18    this.fileName = fileName;
19  }
20  
21  /**//// <summary>
22  /// 打開Word文檔
23  /// </summary>
24  public void Open()
25  {
26    object path = fileName;
27    cls = new ApplicationClass();
28    try
29    {
30      doc = cls.Documents.Open
31        (ref path, ref missing, ref missing, ref missing,
32        ref missing, ref missing, ref missing, ref missing,
33        ref missing, ref missing, ref missing, ref missing,
34        ref missing, ref missing, ref missing, ref missing);
35      openState = true;
36    }
37    catch
38    {
39      openState = false;
40    }
41  }
42
43  /**//// <summary>
44  /// 返回指定單元格中的數據
45  /// </summary>
46  /// <param name="tableIndex">表格號</param>
47  /// <param name="rowIndex">行號</param>
48  /// <param name="colIndex">列號</param>
49  /// <returns>單元格中的數據</returns>
50  public string ReadWord(int tableIndex, int rowIndex, int colIndex)
51  {
52    //Give the value to the tow Int32 params.
53
54    try
55    {
56      if (openState == true)
57      {
58        table = doc.Tables[tableIndex];
59        string text = table.Cell(rowIndex, colIndex).Range.Text.ToString();
60        text = text.Substring(0, text.Length - 2);  //去除尾部的mark
61        return text;
62      }
63      else
64      {
65        return "";
66      }
67    }
68    catch
69    {
70      return "Error";
71    }
72  }
73
74  /**//// <summary>
75  /// 關閉Word文檔
76  /// </summary>
77  public void Close()
78  {
79    if (openState == true)
80    {
81      if (doc != null)
82        doc.Close(ref missing, ref missing, ref missing);
83      cls.Quit(ref missing, ref missing, ref missing);
84    }
85  }
86}

盡管如此,我還是認為這個類的設計仍然存在缺陷。每次測試這個類的時候,感覺數據讀取的速度不是很令我滿意;而且,這個類用於控制台應用程序的時候不會在屏幕上看到任何值,不明白應該如何改進代碼。希望朋友們能夠給我提供一些改進此類的建議

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved