概述C#單元格數據
最近在做一個項目,其中有一個技術性的難題:“提取Word指定表格中的指定C#單元格數據”。對于像我這樣一個僅僅對于C#語法略有了解的學生來說確實讓我感到有些力不從心,這真是一個非常非常大的挑戰。
登錄google,我檢索了相當多的文章,從多的500多行的代碼到少的不到100行的代碼。這些提取數據的方法基本上就那么幾種,這些人放在博客上基本上都是你copy我的,我copy你的。現在的有些作者很不負責,拿來一段代碼就放上去了。通覽這些代碼,你會發現有些地方居然用到了作者自定義的類;然而,作者卻沒有提供給你這些類的實現方法。這樣的作者很是氣人!還有些作者,在自己的博客上狂貼了幾百行的代碼,外加一個標題就完了。代碼是什么意思,程序整個的實現流程是什么樣子的,說都不說。這些代碼很多,誰都懶得去看。精辟的文章很少,我百里挑一,經過幾個星期的查找和篩選,終于整理出來一套可行的方案。本文通過一個簡單的例子,來揭示如何從Word的表格提取指定C#單元格數據的方法。
準備工作:
新建Word文檔doc1.doc。繪制表格,并且在表格中插入數據,如下表:
界面設計及程序運行過程界面截圖:
說明:通過打開按鈕打開文件(將文件路徑顯示在TextBox控件中)
方法步驟:
1.在引用處引用Microsoft.Office.Interop.Word;
2.使用命名空間Microsoft.Office.Interop.Word和System.Reflection;
3.編寫打開按鈕代碼和讀取Word表格按鈕事件代碼。
因為主要部分在讀取Word表格按鈕事件代碼,因此以下將分享最重要最核心的代碼
- privatevoidReadTable_Click(objectsender,EventArgse)
- {
- ApplicationClasscls=null;
- Documentdoc=null;
- Tabletable=null;
- objectmissing=Missing.Value;
- introwIndex=2,colIndex=1;
- objectpath=fileName.Text;
- cls=newApplicationClass();
- try
- {
- doc=cls.Documents.Open
- (refpath,refmissing,refmissing,refmissing,
- refmissing,refmissing,refmissing,refmissing,
- refmissing,refmissing,refmissing,refmissing,
- refmissing,refmissing,refmissing,refmissing);
- table=doc.Tables[1];
- stringtext=table.Cell(rowIndex,colIndex).Range.Text.ToString();
- texttext=text.Substring(0,text.Length-2);//去除尾部的mark
- texttextContent.Text=text;
- //textContent.Text=
- MessageBox.Show("Congradulations");
- }
- catch(Exceptionex)
- {
- MessageBox.Show(ex.Message);
- }
- finally
- {
- if(doc!=null)
- doc.Close(refmissing,refmissing,refmissing);
- cls.Quit(refmissing,refmissing,refmissing);
- }
- }
以上介紹C#單元格數據
【編輯推薦】