不使用ReportViewer控件,怎样让数据表rdlc文件直接导出到excel?

xwk789xwk 2008-07-11 03:48:10
各位好,向大家请教个问题,是这样的,我在rdlc数据表中绑定了数据库中的数据,我不想让它在页面上显示,而想当我按页面上的一个按钮button1时,自动把该rdlc数据表导出到excel中去,请问该怎么实现呢,请知道的帮忙告诉一声,先在此谢谢大家了。
...全文
453 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangrenzhu 2011-03-03
  • 打赏
  • 举报
回复
没什么用 9.0导出子报表问题依然无法解决
no13wolf 2010-04-30
  • 打赏
  • 举报
回复
学习一下
yifeng2006 2010-04-02
  • 打赏
  • 举报
回复
现在可能用的人少吧 ,所以一个问题几个月都没人解决
nbyqz 2008-10-24
  • 打赏
  • 举报
回复
现在可能用的人少吧 ,所以一个问题几个月都没人解决
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
gomoku 你好,这个问题找了还久还是找不出原因,我觉得我的.rdlc和数据源应该都没有问题,因为我做了一个测试,在这个页面上,我用了一个ReportViewer把.rdlc显示出现,可以正常显示,但当我导出时,我不用ReportViewer里面的导出按钮,我自己放了一个按钮,然后把上面的代码放到按钮的事件里面,但就是老是出现上面的问题,真的搞不懂
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
哦,谢谢,我再找一下原因
gomoku 2008-07-11
  • 打赏
  • 举报
回复
但我在运行时出现下面错误,不是很了解,能不能帮忙一下。...

可能.rdlc有问题,或者数据源跟.rdlc不匹配。
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
还有,你上面的GetSalesData()应该是获得数据吧,我把它改成我自己的一个数据表DataTable
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
gomoku 你好,用了你的方法,但我在运行时出现下面错误,不是很了解,能不能帮忙一下。
用户代码未处理 Microsoft.Reporting.WebForms.LocalProcessingException
Message="本地报表处理期间出错。"
Source="Microsoft.ReportViewer.WebForms"
StackTrace:
在 Microsoft.Reporting.WebForms.LocalReport.CompileReport()
在 Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings)
在 Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings)
在 Microsoft.Reporting.WebForms.LocalReport.Render(String format, String deviceInfo, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings)
在 viiPOS.Reports.Rpt_StockSummary.Button1_Click(Object sender, EventArgs e) 位置 C:\Documents and Settings\SH_XuWuKe\My Documents\Visual Studio 2005\Projects\viiPOS 2.6.0\viiPOSManager\Reports\Rpt_StockSummary.aspx.cs:行号 226
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


提示错误出现在
byte[] bytes = lr.Render(
"Excel",
deviceInfo,
out mimeType,
out encoding,
out extension,
out streams,
out warnings);

xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
哦,我试一下,先谢谢你了
gomoku 2008-07-11
  • 打赏
  • 举报
回复
可以用LocalReport类。


static void Test()
{
LocalReport lr = new LocalReport();

string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>Excel</OutputFormat>" +
"</DeviceInfo>";

lr.ReportPath = @"C:\My Reports\Monthly Sales.rdlc";
lr.DataSources.Add(new ReportDataSource("Sales", GetSalesData()));

string mimeType, encoding, extension;
string[] streams;
Warning[] warnings;

byte[] bytes = lr.Render(
"Excel",
deviceInfo,
out mimeType,
out encoding,
out extension,
out streams,
out warnings);

using (FileStream fs = new FileStream(@"c:\My Reports\Monthly Sales.xls", FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
}
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
自己顶一下
xwk789xwk 2008-07-11
  • 打赏
  • 举报
回复
在线等待各位的帮忙

110,968

社区成员

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

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

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