把dgrd的部分内容写到word中,100分,在线等

yaojian524 2006-12-14 03:02:58
我是.net的菜鸟,现在想把dgrd中的2列数据写到word里,不知道该怎么做。
http://community.csdn.net/Expert/topic/5212/5212797.xml?temp=.5036585
我按上面的文章改了一下代码,可是还是没好用,不知道是哪里改的不对,希望大侠们多帮忙,下面是我的代码。

public void ToExcel(System.Web.UI.Control ctl)
{
Response.Clear();

Response.Buffer = true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment:filename=Word.doc");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "Memorabilia/ms-word";//这里和我office的安装位置有关系吗?

this.EnableViewState = false;

System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);

System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ctl.RenderControl(oHtmlTextWriter);

Response.Write(oStringWriter.ToString());

Response.Flush();
Response.Close();

}

private void btnAdd_Click(object sender,Sysstem.EventArgs e)
{
ToExcel(this.dgrdMemorabilia);//我想显示dgrd中的2列,这里该怎么写?
}

我运行上面的代码时打开的不是word,而是aspx页,内容是:
<table cellspacing="0" cellpadding="4" rules="all" bordercolor="#3366CC" border="1" id="dgrdMemorabilia" style="background-color:White;border-color:#3366CC;border-width:1px;border-style:None;height:144px;width:800px;border-collapse:collapse;">
<tr style="color:#CCCCFF;background-color:#003399;font-weight:bold;width:800px;">
<td>选择时间</td><td>标题</td>
</tr><tr style="color:#003399;background-color:White;">
<td>2006-2-1 0:00:00</td><td>2</td>
</tr><tr style="color:#003399;background-color:White;">
<td>2006-3-2 0:00:00</td><td>211</td>
</tr><tr align="Right" style="color:#003399;background-color:#99CCCC;">
<td colspan="8"><span>上一页</span> <span>下一页</span></td>
</tr>
</table>

而我只想显示:
2006-2-1 0:00:00 2
2006-3-2 0:00:00 211

该怎么做?我才学.net10几天时间,大家多帮忙啊,多谢了!
...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaojian524 2006-12-14
  • 打赏
  • 举报
回复
我怎么打不开那个word文档?提示正在被使用,注销以后还是提示正在被使用。。。
yaojian524 2006-12-14
  • 打赏
  • 举报
回复
to cpp2017(幕白兄) "attachment 后面是;号不是:号"

真强,这都被你看出来了!佩服死你了!好用了,多谢大家了!
分就给幕白兄了,其他的兄弟我也衷心的感谢,谢谢大家热心的帮忙,多谢了!
cpp2017 2006-12-14
  • 打赏
  • 举报
回复
Response.AppendHeader("Content-Disposition","attachment;filename=word.doc");

attachment 后面是;号不是:号
yaojian524 2006-12-14
  • 打赏
  • 举报
回复
public void ToExcel(System.Web.UI.Control ctl)
{
Response.Clear();

Response.Buffer = true;

Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment:filename=word.doc");

Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

Response.ContentType = "application/ms-word";

this.EnableViewState = false;

System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);

System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);

System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

ctl.RenderControl(oHtmlTextWriter);

Response.Write(oStringWriter.ToString());

this.dgrdMemorabilia.ShowHeader = false;

this.dgrdMemorabilia.ShowFooter = false;

Response.Flush();

Response.Close();

Response.End();

}
private void btnAdd_Click(object sender, System.EventArgs e)
{
ToExcel(this.dgrdMemorabilia);
}
我把代码改成这样还是不弹出word,而是弹出“我的页面名.aspx”页,内容也还是我上面给出的内容。是不是需要建一个word模版?Response.ContentType = "application/ms-word";中的application不用改成我的项目名吗?大家帮我看看,多谢了!
Qim 2006-12-14
  • 打赏
  • 举报
回复
study & jf
cpp2017 2006-12-14
  • 打赏
  • 举报
回复
Response.ContentType = "application/ms-word";


然后最后加一句.
Response.End()

另外不在要原页面刷新,关掉后再打开.
shalen520 2006-12-14
  • 打赏
  • 举报
回复
我试了一把,没有问题
yaojian524 2006-12-14
  • 打赏
  • 举报
回复
没人知道吗?
yaojian524 2006-12-14
  • 打赏
  • 举报
回复
to shalen520:
不好用啊,一点变化都没有啊,大家帮帮忙啊,急!
shalen520 2006-12-14
  • 打赏
  • 举报
回复
//设置页眉不可见
DataGrid.ShowHeader = false;
//设置页脚不可见
DataGrid.ShowFooter = false;

//设置mime类型
Response.ContentType = "application/ms-word";

62,046

社区成员

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

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

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

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