`
luckyjaky
  • 浏览: 114499 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C#读取Word文档

阅读更多
1:
对项目添加引用,Microsoft Word 11.0 Object Library
2:
在程序中添加 using Word = Microsoft.Office.Interop.Word;
3:
程序中添加
Word.Application app = new Microsoft.Office.Interop.Word.Application(); //可以打开word程序
Word.Document doc = null; //一会要记录word打开的文档
word文档和word程序可不是一回事奥!
4:
一般来说,对于抽取word内容,用的方法很少
public override void openFile(object fileName){} //打开文档
public override object readPar(int i){} //读取word文档的第i段
public override int getParCount(){} //返回word文档一共几段
public override void closeFile(){} //关闭文档
public override void quit(){} //关闭word程序

//从网页上拷贝的目录有时候会出现手动换行符^l,,先将其换成回车段落标记,才能正确读取
public void replaceChar(){}

5:代码

public override void openFile(object fileName)
        {
            try
            {
                if (app.Documents.Count > 0)
                {
                    if (MessageBox.Show("已经打开了一个word文档,你想关闭重新打开该文档吗?", "提示", 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("您可能关闭了文档");
                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("出现错误:" + 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("文档出现错误,请重新操作");
            }
        }

6:
刚才是用读取一段做的例子,如果要读取一句或一篇只需要把doc.Paragraphs[i](readPar中)改成doc.Sentences[i]或doc.content即可,因为都是微软的东东,所以用起来没有一点的障碍,再加上现在的vs2005做的很智能,所以先从java转到了c#上

7:
实际上,c#中读取word是不用那么麻烦的,但是如果考虑到可能还要抽取txt,ppt等多种格式,所以就写了一个抽象类,调用起来也方便,这就是为什么我的程序方法开头会有override的原因,总要考虑到通用,所以多了一些代码。





分享到:
评论

相关推荐

    C#读取Word文档的技巧

    在实现C#读取Word文档时,需要使用FileStream对象来读取文本文件里的信息,但是对于Word文档来说就不能使用这样的方法了。因为Word文档是一个二进制文件,包含了许多格式和样式信息,无法使用FileStream对象来读取。...

    C# 读取word文档和图片

    一、C#读取Word文档 1. **使用Microsoft.Office.Interop.Word** 微软提供的COM互操作库允许C#代码与Office应用程序进行交互。首先,你需要在项目中引用`Microsoft.Office.Interop.Word`库。然后,你可以创建一个...

    C#操作word文档 C#实现Word中表格信息读取

    根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...

    C#读取Word内容

    总结来说,C#读取Word内容主要通过两种方式:一是使用Microsoft.Office.Interop.Word库,二是利用OpenXML SDK。两者各有优缺点,开发者应根据实际需求选择合适的方法。在项目开发过程中,确保正确处理异常,避免资源...

    c# 读取WORD的内容并显示在页面上

    根据给定的文件信息,以下是对“C#读取...通过上述知识点的解析,我们可以清晰地了解到如何使用C#读取Word文档的内容并将其展示在Web页面上。这不仅有助于理解和掌握相关的编程技巧,也为实际项目开发提供了参考案例。

    C#读取word文件的Dll

    可以借助这个类库文件轻松读取Word资料

    C# 读取word源码

    总的来说,C#读取Word文档的全文内容是一项基础但实用的技能,它在数据分析、文档处理、自动化办公等多个领域都有广泛的应用。通过熟练掌握这一技术,开发者可以更高效地处理与Word文档相关的任务。

    c#打开word文档及读取word文档

    以下是一些关于如何使用C#打开和读取Word文档的重要知识点: 1. **安装必要的引用**:首先,你需要在你的C#项目中添加对`Microsoft.Office.Interop.Word`的引用。在Visual Studio中,右键点击项目,选择“管理NuGet...

    C#读取word内容

    以下是如何使用C#读取Word文档内容的详细步骤和相关知识点: 首先,你需要在你的项目中添加对Microsoft Word 11.0 Object Library的引用。这是Office Interop库的一部分,它提供了对Word对象模型的访问。你可以通过...

    C#读取word文件中的文本实现对单词的索引显示

    本主题聚焦于如何使用C#来读取Word文件并实现文本内容的检索,结合自然语言处理(NLP)技术,使得用户可以对文档中的单词进行索引和显示。以下是对这个知识点的详细讲解: 首先,为了读取Word文件,我们需要利用...

    asp.net(c#).winform 读取word文档内容、创建新word文档

    一、读取Word文档内容 在C#中,可以借助Microsoft.Office.Interop.Word库来实现与Word的交互。这个库是.NET框架的一部分,允许开发者直接操作Word对象模型。以下是一个简单的步骤: 1. 引用库:首先,需要在项目中...

    C#读取word文件Excel文件PDF文件Txt文件

    在IT行业中,编程语言C#提供了丰富的库和方法来处理各种类型的文件,包括Word文档、Excel电子表格、PDF文档和纯文本文件。本教程将详细阐述如何使用C#有效地读取这些不同格式的文件。 首先,让我们从读取Word文件...

    C#读取word并转为html格式

    ### C#读取Word文档并转换为HTML格式 在日常工作中,我们经常需要处理各种文档格式的转换,尤其是在Web开发领域,将Word文档转换成HTML格式可以方便地嵌入到网页中展示。本文将详细介绍如何使用C#语言来实现这一...

    c#用aspose.word读取word文件内容,并显示图片

    在探讨如何利用C#结合Aspose.Word库读取Word文档内容并显示其中的图片之前,我们首先需要了解几个关键的概念和技术点。 ### Aspose.Word 库简介 Aspose.Words 是一个强大的.NET类库,用于在服务器端处理Microsoft ...

    C#操作word文档(多种方法)

    以上就是C#操作Word文档的一些核心知识点和常见操作,通过这些方法可以实现对Word文档的读取、编辑和创建。在实际开发中,根据具体需求,还可以结合其他高级特性,如模板应用、邮件合并、宏执行等。

    C#读写word文件

    首先,要实现C#读取Word文件,我们可以利用Microsoft Office Interop库,这是一个允许C#与Office应用程序进行交互的COM接口。在VS2008中,你需要确保已安装了Microsoft Office,并且在项目中添加对Microsoft.Office....

    C# 不依赖Office读取Word、PPT

    下面是一个简单的示例,展示了如何使用C#读取.docx文件中的文本: ```csharp using System.IO; using System.IO.Compression; public string ExtractTextFromDocx(string filePath) { using (var archive = ...

    C#读到加密的WORD文档

    总的来说,C#读取加密Word文档的关键在于使用正确的库(如Office Interop或Open XML SDK),提供正确的密码,并确保正确地管理和关闭资源。在VS2013中,你可以结合这些工具和方法来实现所需的功能。

Global site tag (gtag.js) - Google Analytics