急求asp.net导出word

keybows 2010-10-26 01:04:35

StringBuilder sb = new StringBuilder();
foreach (RepeaterItem re in Re_Article_Tbl.Items)
{
CheckBox cb = re.FindControl("Ch_Id") as CheckBox;
if (cb.Checked)
{
int id = Convert.ToInt32(cb.Text);
using (SqlDataReader dr = Common.SqlHelper.ExecuteReader(Common.SqlHelper.ConnectionString, CommandType.Text, "select ID,TName,Title from New n inner join New_T t on n.CID=t.TID where ID=" + id + ""))
{
while (dr.Read())
{
sb.Append("<table style=\"border:1px solid #ccc;\" cellpadding=\"0\" cellspacing=\"0\">");
sb.Append("<tr><td>ID:</td><td>" + dr.GetInt32(0).ToString() + "</td></tr>");
sb.Append("<tr><td>分类名称:</td><td>" + dr.GetString(1).ToString() + "</td></tr>");
sb.Append("<tr><td>文章标题:</td><td>" + dr.GetString(2).ToString() + "</td></tr>");
sb.Append("</table>");
sb.Append("<br/>");
sb.Append("<br/>");
}
}
}
}
Response.Clear();
Response.Buffer = false;
Response.Charset = "utf8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("content-disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMdd HHmmss") + ".doc");
Response.ContentType = "application/ms-word";
StringWriter sw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(sw);
Response.Write(sw.ToString());
Response.Flush();
Response.Close();
Response.End();

主要有三个问题
1:为什么每次用讯雷下载下来的都是页面而不是word,不用讯雷的,直接点击保存就可以,ff也可以直接导出word,讯雷就会下载页面这是为什么呢?
2:HtmlTextWriter hw = new HtmlTextWriter(sw);这句是什么意思?不我写这句也可以直接导出来额
3:RenderControl是什么意思!例如如果要将repeater导出来,就要用这个Repeater.RenderControl(HtmlTextWriter);
上面2问题的那个是不是和RenderControl结合用的?
如果不用控件是不是就直接输出StringWriter呢?

仅剩35分 求帮助!
...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-26
  • 打赏
  • 举报
回复
HtmlTextWriter要求必须传递一个与TextWriter接口兼容的实例。该类的选择将决定最终生成的Html文本的输出方式,例如把结果输出到一个TextBox中
StringWriter sw=new System.IO.StringWriter();
HtmlTextWriter writer=new HtmlTextWriter(sw);
Control.RenderControl
将服务器控件的内容输出到所提供的HtmlTextWriter 对象中;如果已启用跟踪功能,则存储有关控件的跟踪信息
迅雷下载
wjq 2010-10-26
  • 打赏
  • 举报
回复
因为这根本不是word文档,本身就是html代码,冒充doc,word2000以上版本可以自动识别而已。
huangwenquan123 2010-10-26
  • 打赏
  • 举报
回复
根据网上找到资料说:怀疑迅雷是根据下载对话框中的网址重新请求下载,与发起请求的页面已经无关,而IE又不会把ViewState信息传到迅雷中,导致下载的文件不是想要的Excel页面。
lz可以先把要下载的文件先保存一份在服务器上,然后指向那个地址下载。如果不想路径被用户看到的话,可以指向一个页面,把路径传过去,通过参数下载,我就是这样实现的!
槑党--一缕风 2010-10-26
  • 打赏
  • 举报
回复
帮顶。曾经也遇到这样的问题,一直没解决!!!
keybows 2010-10-26
  • 打赏
  • 举报
回复
神啊!来个人帮帮忙!
keybows 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xushiyun 的回复:]
不懂 帮顶
[/Quote]谢谢
keybows 2010-10-26
  • 打赏
  • 举报
回复
怎么还是米人!
keybows 2010-10-26
  • 打赏
  • 举报
回复
急求急求!大家帮帮忙!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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