概述C#單元格數(shù)據(jù)
最近在做一個(gè)項(xiàng)目,其中有一個(gè)技術(shù)性的難題:“提取Word指定表格中的指定C#單元格數(shù)據(jù)”。對(duì)于像我這樣一個(gè)僅僅對(duì)于C#語(yǔ)法略有了解的學(xué)生來(lái)說(shuō)確實(shí)讓我感到有些力不從心,這真是一個(gè)非常非常大的挑戰(zhàn)。
登錄google,我檢索了相當(dāng)多的文章,從多的500多行的代碼到少的不到100行的代碼。這些提取數(shù)據(jù)的方法基本上就那么幾種,這些人放在博客上基本上都是你copy我的,我copy你的?,F(xiàn)在的有些作者很不負(fù)責(zé),拿來(lái)一段代碼就放上去了。通覽這些代碼,你會(huì)發(fā)現(xiàn)有些地方居然用到了作者自定義的類(lèi);然而,作者卻沒(méi)有提供給你這些類(lèi)的實(shí)現(xiàn)方法。這樣的作者很是氣人!還有些作者,在自己的博客上狂貼了幾百行的代碼,外加一個(gè)標(biāo)題就完了。代碼是什么意思,程序整個(gè)的實(shí)現(xiàn)流程是什么樣子的,說(shuō)都不說(shuō)。這些代碼很多,誰(shuí)都懶得去看。精辟的文章很少,我百里挑一,經(jīng)過(guò)幾個(gè)星期的查找和篩選,終于整理出來(lái)一套可行的方案。本文通過(guò)一個(gè)簡(jiǎn)單的例子,來(lái)揭示如何從Word的表格提取指定C#單元格數(shù)據(jù)的方法。
準(zhǔn)備工作:
新建Word文檔doc1.doc。繪制表格,并且在表格中插入數(shù)據(jù),如下表:
界面設(shè)計(jì)及程序運(yùn)行過(guò)程界面截圖:
說(shuō)明:通過(guò)打開(kāi)按鈕打開(kāi)文件(將文件路徑顯示在TextBox控件中)
方法步驟:
1.在引用處引用Microsoft.Office.Interop.Word;
2.使用命名空間Microsoft.Office.Interop.Word和System.Reflection;
3.編寫(xiě)打開(kāi)按鈕代碼和讀取Word表格按鈕事件代碼。
因?yàn)橹饕糠衷谧x取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#單元格數(shù)據(jù)
【編輯推薦】