求一实现方法,请高手们帮忙

kyouken2007 2007-10-29 09:24:10
我想实现不通过reportview控件,直接点击button,将报表以excel形式导出。
好像需要用到sqlserver的webservices,请坐过的朋友帮帮忙。

我已经实现了通过reportview的render方法导出,但是不知道如何不通过reportview直接导出。

在网上查了一下,相关的资料不多。

提供相关链接的朋友也欢迎。
...全文
176 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengniumaxi 2007-10-30
  • 打赏
  • 举报
回复
mark
WNASP 2007-10-30
  • 打赏
  • 举报
回复
help up
kyouken2007 2007-10-29
  • 打赏
  • 举报
回复
>charry0110((晓)风残月)

你这个代码,哪部分是从reportview导到dataset的??
晓风残月0110 2007-10-29
  • 打赏
  • 举报
回复
这个就是.net的,
webform ,使用语言c#
晓风残月0110 2007-10-29
  • 打赏
  • 举报
回复
dataset,datatable都可以,
把DelQuota去掉,
另外引入using System.IO;
文件就会生成在你的项目的目录里了
查看path
kyouken2007 2007-10-29
  • 打赏
  • 举报
回复
各位大哥,我的程序是.net的。

reportview可以导到dataset里边吗?

我刚才自己用我以前的方法实现了。就是直接定义一个reportview,
然后设置路径,用render生成临时文件,生成临时文件,客户端下载。。

虽然是实现了。但是我觉得应该有更直接的方法。
以前看别人在winform下实现过,但是没有注释,根本看不懂,而且msdn帮助都好少。。

晓风残月0110 2007-10-29
  • 打赏
  • 举报
回复
要不就
1 就把reportview隐藏,还是使用render方法
2 直接将dateset导出

public void WriteDSToExcel(DataSet ds)
{
string strFile="";
string path="";
DataTable dt=ds.Tables[0];

//文件信息设置
strFile=strFile+"LogBackUp";
strFile=strFile+DateTime.Now.ToString("yyyyMMddhhmmss");
strFile=strFile+".xls";
path=Server.MapPath(strFile);

System.IO.FileStream fs=new FileStream(path,System.IO.FileMode.Create,System.IO.FileAccess.Write);
StreamWriter sw=new StreamWriter(fs,new System.Text.UnicodeEncoding());
//画表头
for(int i=0;i<dt.Columns.Count;i++)
{
sw.Write(dt.Columns[i].ColumnName);
sw.Write("\t");
}
sw.WriteLine("");
//画表体
for(int i=0;i<dt.Rows.Count;i++)
{
sw.Write(DelQuota(dt.Rows[i]["UserID"].ToString()));
sw.Write("\t");
sw.Write(DelQuota(dt.Rows[i]["UserName"].ToString()));
sw.Write("\t");
sw.Write(DelQuota(dt.Rows[i]["provinceID"].ToString()));
sw.Write("\t");
sw.Write(DelQuota(dt.Rows[i]["cityID"].ToString()));
sw.Write("\t");
sw.Write(DelQuota(dt.Rows[i]["areaID"].ToString()));
sw.Write("\t");
sw.Write(DelQuota(dt.Rows[i]["Enabled"].ToString()));
sw.WriteLine("");
}
sw.Flush();
sw.Close();
}

晓风残月0110 2007-10-29
  • 打赏
  • 举报
回复
从reportview直接到处到Excel
这样不行吗?

前台
EnableEventValidation="false"
#region 导出
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void BtnPrint_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
// 如果设置为GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.AfficheGV.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
#endregion


playwarcraft 2007-10-29
  • 打赏
  • 举报
回复
dataset抓資料直接生成excel嗎?
playwarcraft 2007-10-29
  • 打赏
  • 举报
回复
是.net ?
kyouken2007 2007-10-29
  • 打赏
  • 举报
回复
up
kyouken2007 2007-10-29
  • 打赏
  • 举报
回复
this.AfficheGV.RenderControl(oHtmlTextWriter);
----------------------------------------
RenderControl方法会有很多问题的,我的报表出力之后是带格式和选择参数的。
直接用这个方法不行。需要使用.ServerReport.Render()方法。


第二个直接导Dataset,不用空间
---------------------------
我数据不是从dataset来的。


不过同样感谢。
晓风残月0110 2007-10-29
  • 打赏
  • 举报
回复
第一个在
this.AfficheGV.RenderControl(oHtmlTextWriter);
第二个直接导Dataset,不用空间

62,046

社区成员

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

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

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

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