using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser; namespace _04查找文件中指定字符串的位置
{
class Program
{
static void Main(string[] args)
{
//===========操作word文档==========
string docFileName = @"F:\人力资源行业用语.docx";
string docText = Doc2Text(docFileName); //===========操作pdf文档===========
string pdfFileName = @"F:\2级1课备课.pdf";
string pdfText = Pdf2Text(pdfFileName); //===========操作xls文档===========
string xlsFileName = @"F:\学生信息导入表.xls";
string xlsText = Xls2Text(xlsFileName);
} #region 利用com组件读取office
/// <summary>
/// 判断文件是否存在
/// </summary>
/// <param name="pFileName"></param>
private static void IsExists(string pFileName)
{
if (!File.Exists(pFileName))
{
throw new ApplicationException("指定目录下的无该文件");
}
} //获得word文件的文本内容
public static string Doc2Text(string docFileName)
{
IsExists(docFileName);
//实例化COM
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, 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, ref nullobj, ref nullobj
); //取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭COM,关闭word程序
wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
GC.Collect();
//返回
return outText;
} //获得pdf文件的文本内容,添加 itextsgarp.dll 第三方组件
public static string Pdf2Text(string pdfFileName)
{
PdfReader reader = new PdfReader(pdfFileName);
StringBuilder data = new StringBuilder();
for (int count = ; count <= reader.NumberOfPages; count++)
{
data.Append(PdfTextExtractor.GetTextFromPage(reader, count));
}
return data.ToString();
} //获得excel文件的文本内容
public static string Xls2Text(string xlsFileName)
{
IsExists(xlsFileName);
Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
object nullobj = System.Reflection.Missing.Value;
//打开Excel文档
Microsoft.Office.Interop.Excel.Workbook excel = xlsApp.Workbooks.Open(xlsFileName, nullobj,
nullobj, nullobj, nullobj,
nullobj, nullobj, nullobj,
nullobj, nullobj, nullobj,
nullobj, nullobj, nullobj,
nullobj); //遍历Excel工作表
Microsoft.Office.Interop.Excel.Worksheet ews = null;
StringBuilder builder = new StringBuilder();
try
{
for (int k = ; k <= excel.Worksheets.Count; k++)
{
ews = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[k];
//builder.Append(((Excel.Range)ews.UsedRange).Text);
if (ews.UsedRange.Value2 != null)
{
for (int i = ; i <= ews.UsedRange.Cells.Rows.Count; i++)
{
for (int j = ; j <= ews.UsedRange.Cells.Columns.Count; j++)
{
if (((object[,])(ews.UsedRange.Value2))[i, j] != null)
{
builder.Append(((object[,])(ews.UsedRange.Value2))[i, j]).Append("|");
} }
}
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
excel.Close(nullobj, nullobj, nullobj);
xlsApp.Quit();
GC.Collect();
}
return builder.ToString();
} //获得PPT文件的文本内容
public static string Ppt2Text(string pptFileName)
{
IsExists(pptFileName);
Microsoft.Office.Interop.PowerPoint.Application pptApp = new Microsoft.Office.Interop.PowerPoint.Application();
object nullobj = System.Reflection.Missing.Value;
Microsoft.Office.Interop.PowerPoint.Presentation ppt = pptApp.Presentations.Open(pptFileName,
Microsoft.Office.Core.MsoTriState.msoTrue,
Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoFalse);
StringBuilder builder = new StringBuilder();
try
{
foreach (Microsoft.Office.Interop.PowerPoint.Slide slide in ppt.Slides)
{
foreach (Microsoft.Office.Interop.PowerPoint.Shape shape in slide.Shapes)
{
if (shape.TextFrame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue)
{
builder.Append(shape.TextFrame.TextRange.Text);
} }
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
ppt.Close();
pptApp.Quit();
GC.Collect();
}
return builder.ToString();
} #endregion
}
}

10-利用com组件读取office的更多相关文章

  1. 基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理

    在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数 ...

  2. [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

    打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...

  3. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  4. 利用 Dijit 组件框架打造丰富的用户界面

    原文出处:Joe Lennon 从头开始学习 Dojo,第 3 部分 利用 Dijit 组件框架打造丰富的用户界面 Dijit 是什么? Dijit 是 Dojo 工具包的富组件用户界面库.这些组件完 ...

  5. java调用com组件将office文件转换成pdf

    在非常多企业级应用中都涉及到将office图片转换成pdf进行保存或者公布的场景,由于pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来眼下将office文件转换 成pdf的方法主要有 ...

  6. Django【第23篇】:利用Form组件和ajax实现的注册

    利用Form组件和ajax实现的注册 一.注册相关的知识点 1.Form组件 我们一般写Form的时候都是把它写在views视图里面,那么他和我们的视图函数也不影响,我们可以吧它单另拿出来,在应用下面 ...

  7. tp5 使用phpword 替换word模板并利用com组件转换pdf

    tp5   使用phpword 替换word模板并利用com组件转换pdf 一.首先composer安装PHPword,就不多说了 二.然后是把模板中要替换的部分用变量代替 三.把原始的模板文件放入项 ...

  8. 如何用代码读取Office Online Server2016的文档的备注信息

    前言 在一个项目上客户要求读取office online server 2016的对文档的备注信息,如下图: 以前思路老纠结在OOS这个在线上,总有以为这个信息存储在某个列表中,其实错了,这个备注信息 ...

  9. .NET平台开源项目速览(10)FluentValidation验证组件深入使用(二)

    在上一篇文章:.NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一) 中,给大家初步介绍了一下FluentValidation验证组件的使用情况.文章从构建间的验证器开 ...

随机推荐

  1. GitHub-修改以下host-ip可加快访问速度

    #GitHub START 207.97.227.239    github.com 204.232.175.94    gist.github.com 107.21.116.220    help. ...

  2. jQuery图片滑动

    一个非常简单实用的jQuery插件 可以用在页面的顶部广告展示 http://slidesjs.com/ 一个需要注意的问题, 就是在手机等客户端(IOS8以上), 使用此插件时, 经常会触发插件的r ...

  3. 试用ubuntu-12.04.3-desktop-amd64(二)

    首先说明,采用主机+虚拟机+ubuntu的形式,更具体的则为Win7-64bit + VMWare + ubuntu-12.04.3-desktop-amd64 进入ubuntu后首先考虑到的就是怎么 ...

  4. Python标准库--os模块

    这个模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行.一个例 ...

  5. C#计算某个时间距离当前日期的天数

    方法一: DateTime dt1 = Convert.ToDateTime("2013-09-30"); DateTime dt2 = DateTime.Now; int cou ...

  6. Joomla安装图文教程 (送 Joomla 中文语言包)

    1.首先 下载 Joomla  源程序 首页: http://www.joomla.org/download.html 下载: download 2.为论坛 创建数据库.进入cPanel面板,选择my ...

  7. 周赛C题 LightOJ 1047 (DP)

    C - C Time Limit:500MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   Description Th ...

  8. C# RGB与16进制颜色转换方法

    http://www.cnblogs.com/goldarch/archive/2010/08/16/1801053.html #region [颜色:16进制转成RGB]        /// &l ...

  9. struts2整合spring出现的Unable to instantiate Action异常

    在struts2整合spring的时候,完全一步步按照官方文档上去做的,最后发现出现 Unable to instantiate Action,网上一搜发现很多人和我一样的问题,配置什么都没有错误,就 ...

  10. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...