用rdlc文件直接导出到excel或PDF
private DataTable LoadSalesData()
{
// Load data from XML file.
DataSet dataSet = new DataSet();
dataSet.ReadXml(@"c:\Reports\data.xml");
return dataSet.Tables[0];
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.reportViewer1.ProcessingMode = ProcessingMode.Local;
this.reportViewer1.LocalReport.ReportPath = @"c:\Reports\Report1.rdl";
reportViewer1.LocalReport.DataSources.Add(
new ReportDataSource("Sales", LoadSalesData()));
this.reportViewer1.RefreshReport();
}
private void button1_Click(object sender, EventArgs e)
{
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string extension;
byte[] bytes = reportViewer1.LocalReport.Render(
"Excel", null, out mimeType, out encoding, out extension,
out streamids, out warnings);
FileStream fs = new FileStream(@"c:\output.xls", FileMode.Create);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
MessageBox.Show("Report exported to output.xls", "Info");
}
如果是BS模式,先保存在服务器上面,再从服务器上面下载下来