詳解C#讀取word內(nèi)容操作
C#讀取word內(nèi)容的操作是我們在開發(fā)中經(jīng)常會遇到的問題,那么如何C#讀取word內(nèi)容的操作呢?那么這里向你介紹了7個方面,希望對你有所幫助。
C#讀取word內(nèi)容1:
對項目添加引用,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(); //可以打開word程序
- Word.Document doc = null; //一會要記錄word打開的文檔
word文檔和word程序可不是一回事奧!
C#讀取word內(nèi)容4:
一般來說,對于抽取word內(nèi)容,用的方法很少
- public override void openFile(object fileName){} //打開文檔
- 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)頁上拷貝的目錄有時候會出現(xiàn)手動換行符^l,,
- 先將其換成回車段落標記,才能正確讀取
- 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)打開了一個word文檔,
- 你想關(guān)閉重新打開該文檔嗎?", "提示",
- 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)錯誤:" + 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)錯誤,請重新操作");
- }
- }
C#讀取word內(nèi)容6:
剛才是用讀取一段做的例子,如果要讀取一句或一篇只需要把doc.Paragraphs[i](readPar中)改成doc.Sentences[i]或doc.content即可,因為都是微軟的東東,所以用起來沒有一點的障礙,再加上現(xiàn)在的vs2005做的很智能,所以先從java轉(zhuǎn)到了c#上
C#讀取word內(nèi)容7:
實際上,C#讀取word內(nèi)容是不用那么麻煩的,但是如果考慮到可能還要抽取txt,ppt等多種格式,所以就寫了一個抽象類,調(diào)用起來也方便,這就是為什么我的程序方法開頭會有override的原因,總要考慮到通用,所以多了一些代碼。
C#讀取word內(nèi)容的基本內(nèi)容就向你介紹到這里,希望對你了解和學習操作C#讀取word內(nèi)容有所幫助。
【編輯推薦】