.net读取word文件文本

最近在写一个使用lucene.net为基础架构的全文检索引擎,要求能处理OFFICE和PDF文件,说实话,头疼。

一直在网上找关于这几种文件读取的开源工具和COM组件。很辛苦,但是总算有点收获

今天大功告成了(未知异常现在我也拿不准),和大家一起分享!

 

先上读.doc的啊!

首先要添加COM引用:

morcosoft word 12.0 object Library和

morcosoft office12.0 object Library   其中12.0表示版本,如果版本低点也可以的。

然后

using Microsoft.Office.Core;

代码如下:

    public string WordReader(string filename)
    {
        filename = DocPath+filename;
        Word.ApplicationClass wordapp = null;
        Word.Document worddoc = null;
        object fileobj = filename;
        object nullobj = System.Reflection.Missing.Value;
        object Readonly = true;
        object noSaveChange = false;
        string doc = "";
        try
        {
            wordapp = new Word.ApplicationClass();
            worddoc = wordapp.Documents.Open(ref fileobj, ref nullobj, ref Readonly, ref nullobj,
            ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
            ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
            doc = worddoc.Content.Text;
            doc.Replace("\a", ""); //替换空串为空。(word中\a代表空串,但在C#中,代表响铃 晕~~)否则显示控制台程序时会响
            doc.Replace("\r", "\n"); //替换回车为回车换行
        }
        catch(Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (worddoc != null)
            {
                try
                {
                    worddoc.Close(ref nullobj, ref nullobj, ref nullobj);
                }
                catch
                { }
              
            }
            if (wordapp != null)
            {
                try
                {
                    wordapp.Quit(ref noSaveChange, ref nullobj, ref nullobj);
                }
                catch
                {
                }
               
            }
            
            System.Runtime.InteropServices.Marshal.ReleaseComObject(wordapp);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(worddoc);
            worddoc = null;
            wordapp = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        return doc;
   
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值