------------Asp.Net如何将网页及图片一并导出到Word中?----------

时间:2022-06-01 17:54:07
目前可以实现非图片的导出,如果网页中有图片到Word中就是一个红叉,请问如何解决?

以下是导出代码:

    //功能实现
    public static void ToWord(System.Web.UI.Control ctl)
    {
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Charset = "";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=DocLibrary.doc");
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        HttpContext.Current.Response.ContentType = "application/ms-word";
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    }
    //调用
    Tools.ToWord(this.div1);

16 个解决方案

#1


试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx

#2


该回复于2011-03-07 09:02:23被版主删除

#3


引用 1 楼 maco_wang 的回复:
试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx


注:1、图片,你要想办法放到和该word文档相同的目录中(变通一下就可以把图片放到相同的目录下了哈)2、这是在客户端导出的,你也可以在服务器端导出,变动一下即可。3、用IE6.0,在IE的选项里启用java。

不太理解,请赐教!! 

#4


刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。

#5


一个人郁闷中。。。 ------------Asp.Net如何将网页及图片一并导出到Word中?----------

#6


直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据

#7


引用 6 楼 wuyq11 的回复:
直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据


up

#8


引用 4 楼 yuxh81 的回复:
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。

http://topic.csdn.net/u/20070424/08/e907852b-df72-4585-b57d-5814a55cc76e.html

#9


现在有三种思路:

1:调用Word自身的组件 Microsoft.Office.Interop.Word.dll 
   这个需要服务器安装Word程序,且需要控制Word进程,有可能会形成死进程,最终导致Web服务器崩溃

2:调用中间件(第三方),如SOAOffice
   这个很好,但要收费

3: 将Web页面直接输出到Word(就是1楼的代码)
   
   能否在方案3的基础上,让图片能插入到word!
   
 

#10


第一个我用过,是很不好.  第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的

#11


引用 10 楼 subxli 的回复:
第一个我用过,是很不好.  第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的


刚刚试了下,手动将Web页面内容选择->复制,后粘贴到Word是可以的
就是不知道代码如何完成!!

#12


总结:

图片不能显示是由于地址的问题(相对地址)。
在输出到页面时,将图片的相对地址改成绝对地址,如:http://...
这也就意味着用户只能在能访问服务器的情况下,图片才能显示

向用户说明采用其它方案的难度及风险,用户同意了此方案!

#13


抱歉问下,刚好遇到和您一样的情况,需要把页面内容导出到word文档中.
我想问下,在您帖子里写的 调用:Tools.ToWord(this.div);
这句是怎么用的呢?
写在前台页面按钮的OnClick中呢?

#14


注意图片的路径为问题:要改成站点服务器的绝对路径如:http://192.168.0.134:8003/image/tab_01.jpg

#15


这个功能用Java Applet也是非常好实现的,可以自动将粘贴过来的WORD中的本地图片上传到服务器。用ACTIVEX的最大问题是只支持IE,用JAVA的跨平台性能要好一些,参考实现见: http://test.reremouse.com/wordimg

#16


引用 4 楼 yuxh81 的回复:
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。


SOAOffice这个已经过时了,现在大家都在PageOffice,跨浏览器,强就一个字!

#1


试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx

#2


该回复于2011-03-07 09:02:23被版主删除

#3


引用 1 楼 maco_wang 的回复:
试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx


注:1、图片,你要想办法放到和该word文档相同的目录中(变通一下就可以把图片放到相同的目录下了哈)2、这是在客户端导出的,你也可以在服务器端导出,变动一下即可。3、用IE6.0,在IE的选项里启用java。

不太理解,请赐教!! 

#4


刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。

#5


一个人郁闷中。。。 ------------Asp.Net如何将网页及图片一并导出到Word中?----------

#6


直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据

#7


引用 6 楼 wuyq11 的回复:
直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据


up

#8


引用 4 楼 yuxh81 的回复:
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。

http://topic.csdn.net/u/20070424/08/e907852b-df72-4585-b57d-5814a55cc76e.html

#9


现在有三种思路:

1:调用Word自身的组件 Microsoft.Office.Interop.Word.dll 
   这个需要服务器安装Word程序,且需要控制Word进程,有可能会形成死进程,最终导致Web服务器崩溃

2:调用中间件(第三方),如SOAOffice
   这个很好,但要收费

3: 将Web页面直接输出到Word(就是1楼的代码)
   
   能否在方案3的基础上,让图片能插入到word!
   
 

#10


第一个我用过,是很不好.  第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的

#11


引用 10 楼 subxli 的回复:
第一个我用过,是很不好.  第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的


刚刚试了下,手动将Web页面内容选择->复制,后粘贴到Word是可以的
就是不知道代码如何完成!!

#12


总结:

图片不能显示是由于地址的问题(相对地址)。
在输出到页面时,将图片的相对地址改成绝对地址,如:http://...
这也就意味着用户只能在能访问服务器的情况下,图片才能显示

向用户说明采用其它方案的难度及风险,用户同意了此方案!

#13


抱歉问下,刚好遇到和您一样的情况,需要把页面内容导出到word文档中.
我想问下,在您帖子里写的 调用:Tools.ToWord(this.div);
这句是怎么用的呢?
写在前台页面按钮的OnClick中呢?

#14


注意图片的路径为问题:要改成站点服务器的绝对路径如:http://192.168.0.134:8003/image/tab_01.jpg

#15


这个功能用Java Applet也是非常好实现的,可以自动将粘贴过来的WORD中的本地图片上传到服务器。用ACTIVEX的最大问题是只支持IE,用JAVA的跨平台性能要好一些,参考实现见: http://test.reremouse.com/wordimg

#16


引用 4 楼 yuxh81 的回复:
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。


SOAOffice这个已经过时了,现在大家都在PageOffice,跨浏览器,强就一个字!