C#读取word内容的操作是我们在开发中经常会遇到的问题,那么如何C#读取word内容的操作呢?那么这里向你介绍了7个方面,希望对你有所帮助。
C#读取word内容1:
对项目添加引用,Microsoft Word 11.0 Object Library
C#读取word内容2:
在程序中添加
- using Word = Microsoft.Office.Interop.Word;
C#读取word内容3:
程序中添加
- Word.Application app =
- new Microsoft.Office.Interop.Word.Application(); //可以打开word程序
- Word.Document doc = null; //一会要记录word打开的文档
word文档和word程序可不是一回事奥!
C#读取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(){}
C#读取word内容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("文档出现错误,请重新操作");
- }
- }
C#读取word内容6:
刚才是用读取一段做的例子,如果要读取一句或一篇只需要把doc.Paragraphs[i](readPar中)改成doc.Sentences[i]或doc.content即可,因为都是微软的东东,所以用起来没有一点的障碍,再加上现在的vs2005做的很智能,所以先从java转到了c#上
C#读取word内容7:
实际上,C#读取word内容是不用那么麻烦的,但是如果考虑到可能还要抽取txt,ppt等多种格式,所以就写了一个抽象类,调用起来也方便,这就是为什么我的程序方法开头会有override的原因,总要考虑到通用,所以多了一些代码。
C#读取word内容的基本内容就向你介绍到这里,希望对你了解和学习操作C#读取word内容有所帮助。
【编辑推荐】