读取word文档

诺维斯基 2012-04-09 11:02:32
各位大哥请看:

我有一个word文档,里面可能有图片。

需求:1,如何读取整个word文档,包括图片
2,读取之后放在什么控件里面显示呢(图片也能显示)?
...全文
197 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
诺维斯基 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
C# code


Document doc = new Document(MyDir + "Image.SampleImages.doc");

NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true, false);
int imageIndex = 0;
for……
[/Quote]

要是能有点注释就好了。
newxdlysk 2012-04-09
  • 打赏
  • 举报
回复

Document doc = new Document(MyDir + "Image.SampleImages.doc");

NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true, false);
int imageIndex = 0;
foreach (Shape shape in shapes)
{
if (shape.HasImage)
{
string imageFileName = string.Format("Image.ExportImages.{0} Out.{1}", imageIndex, shape.ImageData.ImageType);
shape.ImageData.Save(MyDir + imageFileName);
imageIndex++;
}
}

newxdlysk 2012-04-09
  • 打赏
  • 举报
回复
用这个Aspose.Words.dll
http://download.csdn.net/detail/newxdlysk/4210120
里面有chm帮助文档
贴个例子

DocumentBuilder builder = new DocumentBuilder();

string imageFileName = MyDir + "Hammer.wmf";

builder.Write("Image linked, not stored in the document: ");

Shape linkedOnly = new Shape(builder.Document, ShapeType.Image);
linkedOnly.WrapType = WrapType.Inline;
linkedOnly.ImageData.SourceFullName = imageFileName;

builder.InsertNode(linkedOnly);
builder.Writeln();


builder.Write("Image linked and stored in the document: ");

Shape linkedAndStored = new Shape(builder.Document, ShapeType.Image);
linkedAndStored.WrapType = WrapType.Inline;
linkedAndStored.ImageData.SourceFullName = imageFileName;
linkedAndStored.ImageData.SetImage(imageFileName);

builder.InsertNode(linkedAndStored);
builder.Writeln();


builder.Write("Image stored in the document, but not linked: ");

Shape stored = new Shape(builder.Document, ShapeType.Image);
stored.WrapType = WrapType.Inline;
stored.ImageData.SetImage(imageFileName);

builder.InsertNode(stored);
builder.Writeln();

builder.Document.Save(MyDir + "Image.CreateLinkedImage Out.doc");
[Visual Basic]

Dim builder As DocumentBuilder = New DocumentBuilder()

Dim imageFileName As String = MyDir & "Hammer.wmf"

builder.Write("Image linked, not stored in the document: ")

Dim linkedOnly As Shape = New Shape(builder.Document, ShapeType.Image)
linkedOnly.WrapType = WrapType.Inline
linkedOnly.ImageData.SourceFullName = imageFileName

builder.InsertNode(linkedOnly)
builder.Writeln()


builder.Write("Image linked and stored in the document: ")

Dim linkedAndStored As Shape = New Shape(builder.Document, ShapeType.Image)
linkedAndStored.WrapType = WrapType.Inline
linkedAndStored.ImageData.SourceFullName = imageFileName
linkedAndStored.ImageData.SetImage(imageFileName)

builder.InsertNode(linkedAndStored)
builder.Writeln()


builder.Write("Image stored in the document, but not linked: ")

Dim stored As Shape = New Shape(builder.Document, ShapeType.Image)
stored.WrapType = WrapType.Inline
stored.ImageData.SetImage(imageFileName)

builder.InsertNode(stored)
builder.Writeln()

builder.Document.Save(MyDir & "Image.CreateLinkedImage Out.doc")


这个比用微软的组件要好,微软组件放在服务器上要配置权限用户啥的,很麻烦,而且开了有时候进程都关不掉
Mirror然 2012-04-09
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20040102/11/2625860.html

-------
参考 以备后用
Mirror然 2012-04-09
  • 打赏
  • 举报
回复
实现的思路是先在内存中把这个word文档打开,然后把里面的内容全部拷贝的剪切板中,最后再把数据从剪切板里面取出来.
代码如下:
Word.ApplicationClass wordApp=new ApplicationClass();
object file=path;
object nullobj=System.Reflection.Missing.Value;
Word.Document doc = wordApp.Documents.Open(
ref file, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
IDataObject data=Clipboard.GetDataObject();
txtFileContent.Text=data.GetData(DataFormats.Text).ToString();
doc.Close();

-------------
参考
只要内容能读出来 显示用什么都取出数据来
upc_xiaowei 2012-04-09
  • 打赏
  • 举报
回复
我也想知道,标记一下
orochiheart 2012-04-09
  • 打赏
  • 举报
回复
这个...我也想知道
诺维斯基 2012-04-09
  • 打赏
  • 举报
回复
各位大哥,帮帮忙啊

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧