Asp.net读取Word

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.net读取Word相关的知识,希望对你有一定的参考价值。

Asp.net读取Word里的内容并显示在label上

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内容有所帮助。

参考资料:http://www.knowsky.com/539597.html

参考技术A 楼上说的都是利用word自动化技术做的,这种代码在asp.net的后台代码里运行问题多多哦:
1. 因为word是单机交互式程序,所以你必须给你的IIS进程模拟成administrator拥有桌面交互权的程序,好像在配置文件里要加个impersonate
否则你的代码运行不了。
2. 即使可以运行了,服务器端word自动化也会大量消耗服务器的内存等资源,运行缓慢,还经常会出现word死进程。微软官方文章声明不建议这样编程。
3. 你给IIS配置的帐号密码暴露在config文件里好像也不太安全

建议直接使用SOAOffice这个中间件产品,在网页里可以直接显示word文件,甚至还可以在线编辑保存、动态生成word报告等等本回答被提问者采纳

asp.net 导出word文档在导出这个word文档的某一书签位置生成一个条形码

asp.net 如何生成条形码,然后导出到word.?

参考技术A 不懂

以上是关于Asp.net读取Word的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net读取Word

ASP.net 是不是可以读取现有的 Access 数据库

使用 ASP.NET 模拟读取远程文件

asp.net mvc中如何读取上传的doc文件中的数据(含有中文字符)

asp.net如何从数据库读取一个字段的值然后赋值给一个参数

Asp.Net Core 进阶 —— 读取appsettings.json