2012年1月31日 星期二

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");

        }

4 則留言:

  1. 請教大大,你使用匯出Excel,會不會花費很多時間。
    我轉出一個檔,30個資料點,50筆資料,差不多要花費一分鐘。

    回覆刪除
    回覆
    1. 恩,我在測寫時;也發現不是很快..若要用在實務面就不大合適了!
      單純參考研究方法

      刪除
    2. 了解~~謝謝大大指教
      看到介面上點選匯出Excel還挺快的(至少不會慢得這麼誇張),結果程式碼匯出卻這樣的慢真的"飲恨"

      刪除
    3. 哈,一般都是另外寫! 將dataset or datatable 直接處理匯出
      rdlc 算是新產品而已..還要期待微軟加強

      刪除