2013-07-30 60 views
2

我正在用数据集文件的TableAdapter方法从数据库中获取数据, 和Crysral报告对象来创建报告而不是CrystalReport文件本身。 (基本上我不希望使用物理CrystalReport文件)如何使用CrystalReport对象和TableAdapter将Crystal Report导出到Excel?

在这里,我的代码的样本

DataTable dtRpt = new DataTable(); 
CrystalReportViewer crv = new CrystalReportViewer(); 
using (uspRptComplainReceiptTableAdapter _adpSales = new uspRptComplainReceiptTableAdapter()) 
{ 
    dtRpt = _adpSales.GetData(Convert.ToByte(bolObj.CompId), bolObj.ComplainId) as DataTable; 
    if (dtRpt != null && dtRpt.Rows.Count > 0) 
    { 
     crptComplainReceipt rpt1 = new crptComplainReceipt(); 
     rpt1.SetDataSource(dtRpt); 
     crv.ReportSource = rpt1; 
     crv.PrintReport(); 
    } 
    else 
     MessageBox.Show("Record not found.", "Report", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

现在,我想我的导出使用此方法(CrystalReport对象)Excel文件报告。 请帮我这个问题...

回答

2

试试这个:

CrystalDecisions.CrystalReports.Engine.ReportClass rpt=new ReportClass(); 
rpt.ExportToDisk(ExportFormatType.Excel, "FilePath"); 

BTW不要忘记添加引用。

+0

对不起,但我不明白你的答案.. 什么是c类?我在哪里设置我的数据源? –

+0

对不起,cClass是一个错误的看到我的更新。 'rpt'不是物理晶体报告文件(就像你所说的那样)。起初,你必须先制作一份报告的对象。那么你会显示你的数据等等。当你想导出的时候,你会调用'ExportToDisk()'方法,其中有两个参数,第一个是你希望你的报告转换成文件的格式,第二个是'filepath'只写了如何将您的报告导出到Excel(因为您的问题是关于这个问题的)。 –

+0

Yaaa ..它的工作.. 但是,它不需要声明ReportClass的Onject。 只有下面的线就足够了这个 'rpt.ExportToDisk(ExportFormatType.Excel,“FilePath”);' –

相关问题