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

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

編輯:關於C語言

最近在做一個項目,使用到了讀取Word表格中內容的技術。在網上找了許多資料都不盡人意,最後整理了並修改了一些網上的代碼,取其精華去其糟粕,現將代碼同各位園子裡的朋友們分享。

讀取Word表格數據的方法

1//將讀取Word表格封裝與方法中。
2public string ReadWord(string fileName, int rowIndex, int colIndex)
3{
4  ApplicationClass cls = null;
5  Document doc = null;
6
7  Table table = null;
8  object missing = Missing.Value;
9
10  object path = fileName;
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    return text;
24  }
25  catch (Exception ex)
26  {
27
28    return ex.Message;
29  }
30  finally
31  {
32    if (doc != null)
33      doc.Close(ref missing, ref missing, ref missing);
34    cls.Quit(ref missing, ref missing, ref missing);
35  }
36}

這個方法用於讀取Word表格中某個單元格的數據。其中的參數分別為文件名(包括路徑),行號,列號。

由於考慮到代碼復用,我將代碼寫成了一個類。此外,通過審視代碼可以發現,如果要多次讀取同一文件中的不同的單元格數據會造成頻繁的打開、關閉Word程序;因此,我將代碼進行優化。在我做優化的時候突然想起來ADO.Net的SqlConnection和SqlCommand類。這兩個類我常常用做數據庫操作,一般用到的方法順序都是:打開數據庫連接,執行數據庫查詢,關閉數據庫連接。我沒有使用到兩個類,我將這段代碼封裝於一個類中。使用Open、Close控制Word文檔的打開和關閉,使用WordTableRead方法讀取表格中的數據。這樣對於讀取多個單元格中的數據,每次只需要打開、關閉一次Word程序即可,大大的節約了資源的開銷和節省了時間,提高的讀取效率。此外,對於代碼的優化還有可以讀取指定表格中數據。下圖顯示了這個類的結構,代碼及相應注釋附在圖的下方:

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