十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
C#讀取word內(nèi)容的操作是我們?cè)陂_(kāi)發(fā)中經(jīng)常會(huì)遇到的問(wèn)題,那么如何C#讀取word內(nèi)容的操作呢?那么這里向你介紹了7個(gè)方面,希望對(duì)你有所幫助。

C#讀取word內(nèi)容1:
對(duì)項(xiàng)目添加引用,Microsoft Word 11.0 Object Library
C#讀取word內(nèi)容2:
在程序中添加
- using Word = Microsoft.Office.Interop.Word;
C#讀取word內(nèi)容3:
程序中添加
- Word.Application app =
- new Microsoft.Office.Interop.Word.Application(); //可以打開(kāi)word程序
- Word.Document doc = null; //一會(huì)要記錄word打開(kāi)的文檔
word文檔和word程序可不是一回事奧!
C#讀取word內(nèi)容4:
一般來(lái)說(shuō),對(duì)于抽取word內(nèi)容,用的方法很少
- public override void openFile(object fileName){} //打開(kāi)文檔
- public override object readPar(int i){} //讀取word文檔的第i段
- public override int getParCount(){} //返回word文檔一共幾段
- public override void closeFile(){} //關(guān)閉文檔
- public override void quit(){} //關(guān)閉word程序
- //從網(wǎng)頁(yè)上拷貝的目錄有時(shí)候會(huì)出現(xiàn)手動(dòng)換行符^l,,
- 先將其換成回車段落標(biāo)記,才能正確讀取
- public void replaceChar(){}
C#讀取word內(nèi)容5:代碼
- public override void openFile(object fileName)
- ...{
- try
- ...{
- if (app.Documents.Count > 0)
- ...{
- if (MessageBox.Show(
- "已經(jīng)打開(kāi)了一個(gè)word文檔,
- 你想關(guān)閉重新打開(kāi)該文檔嗎?", "提示",
- MessageBoxButtons.YesNo) == DialogResult.Yes)
- ...{
- object unknow = Type.Missing;
- doc = app.ActiveDocument;
- if (MessageBox.Show(
- "你想保存嗎?", "保存",
- MessageBoxButtons.YesNo) == DialogResult.Yes)
- ...{
- app.ActiveDocument.Save();
- }
- app.ActiveDocument.Close(ref unknow, ref unknow, ref unknow);
- app.Visible = false;
- }
- else
- ...{
- return;
- }
- }
- }
- catch (Exception)
- ...{
- //MessageBox.Show("您可能關(guān)閉了文檔");
- app = new Microsoft.Office.Interop.Word.Application();
- }
- try
- ...{
- object unknow = Type.Missing;
- app.Visible = true;
- doc = app.Documents.Open(ref fileName,
- ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
- ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
- ref unknow, ref unknow, ref unknow, ref unknow, ref unknow);
- }
- catch (Exception ex)
- ...{
- MessageBox.Show("出現(xiàn)錯(cuò)誤:" + ex.ToString());
- }
- }
- public override object readPar(int i)
- ...{
- try
- ...{
- string temp = doc.Paragraphs[i].Range.Text.Trim();
- return temp;
- }
- catch (Exception e) ...{
- MessageBox.Show("Error:"+e.ToString());
- return null;
- }
- }
- public override int getParCount()
- ...{
- return doc.Paragraphs.Count;
- }
- public override void closeFile()
- ...{
- try
- ...{
- object unknow = Type.Missing;
- object saveChanges = Word.WdSaveOptions.wdPromptToSaveChanges;
- app.ActiveDocument.Close(
- ref saveChanges, ref unknow, ref unknow);
- }
- catch (Exception ex)
- ...{
- MessageBox.Show("Error:" + ex.ToString());
- }
- }
- public override void quit()
- ...{
- try
- ...{
- object unknow = Type.Missing;
- object saveChanges = Word.WdSaveOptions.wdSaveChanges;
- app.Quit(ref saveChanges, ref unknow, ref unknow);
- }
- catch (Exception)
- ...{
- }
- }
- public void replaceChar() ...{
- try
- ...{
- object replaceAll = Word.WdReplace.wdReplaceAll;
- object missing = Type.Missing;
- app.Selection.Find.ClearFormatting();
- app.Selection.Find.Text = "^l";
- app.Selection.Find.Replacement.ClearFormatting();
- app.Selection.Find.Replacement.Text = "^p";
- app.Selection.Find.Execute(
- ref missing, ref missing,
- ref missing, ref missing, ref missing,
- ref missing, ref missing,
- ref missing, ref missing, ref missing,
- ref replaceAll, ref missing,
- ref missing, ref missing, ref missing);
- }
- catch (Exception e)
- ...{
- MessageBox.Show("文檔出現(xiàn)錯(cuò)誤,請(qǐng)重新操作");
- }
- }
C#讀取word內(nèi)容6:
剛才是用讀取一段做的例子,如果要讀取一句或一篇只需要把doc.Paragraphs[i](readPar中)改成doc.Sentences[i]或doc.content即可,因?yàn)槎际俏④浀臇|東,所以用起來(lái)沒(méi)有一點(diǎn)的障礙,再加上現(xiàn)在的vs2005做的很智能,所以先從java轉(zhuǎn)到了c#上
C#讀取word內(nèi)容7:
實(shí)際上,C#讀取word內(nèi)容是不用那么麻煩的,但是如果考慮到可能還要抽取txt,ppt等多種格式,所以就寫(xiě)了一個(gè)抽象類,調(diào)用起來(lái)也方便,這就是為什么我的程序方法開(kāi)頭會(huì)有override的原因,總要考慮到通用,所以多了一些代碼。
C#讀取word內(nèi)容的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)操作C#讀取word內(nèi)容有所幫助。