• 如何用C#提取Word、Excel等文件的文本(无需安装Office)


      之所以要安装Indexing Service服务,是因为最近在.NET中用到了IFilter来读取Word文件的文字。

      精简XP系统如何安装Indexing Service服务

      到网上找与现有系统一致的原版系统镜像,直接运行镜像安装系统,选择“安装更新”即可。

      “安装更新”实际的效果是保留现有程序,自动安装缺少的系统组件或者服务(因此多出的服务和启动项用工具处理处理就没事了,装完之后系统补丁都没了得再装)。

      提取文本的方法详细见老外的开源项目:Using-IFilter-in-C#

      该方法读取Word文本内容无需安装Office,完美提取中文,读取速度快,即使Word中有表格、图片。

      也支持Excel、PPT,Txt等文件。(测试环境:XP Professional SP3、Server 2003 Enterprise SP1,Server 2008 Enterprise SP2)

      实际测试还发现即使Indexing Service服务未启动也不影响功能,但是系统至少得有Indexing Service服务(XP系统之后的系统对应Windows Search服务,见MSDN资料)。

      园子里有人已经在我之前写过使用IFilter提取Word文本的文章,只是他的程序对中文标点支持不好,目前已经有不少人讨论和测试过:.net 下如何将文档文件(Word, Pdf等) 中的文本提取出来

      我用这个提取文本的方法实现了不使用Word的COM组件(使用COM组件的方法见Microsoft.Office.Interop.Word的方法),即不安装Word统计Word文档的字数。

      正则表达式:Regex.Matches(temStr, @"(?i)[a-z_'0-9-]+").Count + Regex.Matches(temStr, @"[\u0391-\uFFE5]").Count+Regex.Matches(temStr, @"(?i)[^a-z_'0-9\u0391-\uFFE5-]+").Count;//单词数+汉字数(含中文标点)+其他,正则表达式参考的CSDN相关帖子

  • 相关阅读:
    NOJ 1116 哈罗哈的大披萨 【淡蓝】 状态压缩DP
    优先队列原理与实现【转】
    testC-I
    济南NOIP冬令营 选拔(select)
    P4747 D’s problem(d)
    P4746 C’s problem(c)
    P4745 B’s problem(b)
    P4744 A’s problem(a)
    [bzoj] 1004: [HNOI2008]Cards
    NOIP2013 表达式求值
  • 原文地址:https://www.cnblogs.com/xuezhizhang/p/2973734.html
Copyright © 2020-2023  润新知