将数据导出为Excel报表是个老生常谈的话题,但是在项目组新人过多,项目中又存在大量Excel报表时,各种各样的问题就出来了~~~
其实对于绝大部分场景来讲,作成Excel时只要定义好模板文件然后填充数据就行了。于是为了降低新人的出错率,简化开发,写了个通用基类,作成一个报表只要像下面的代码这样简单继承一下基类就可以了。

 1 using System;
2 using System.Data;
3 using Lee.Library.Reports.Office.Excel;
4
5 namespace Lee.Sample.Reports.Office.Excel
6 {
7 public class SampleReport : BaseReport<DataSet>
8 {
9 public SampleReport(DataSet ds) : base(ds) { }
10
11 protected override void InitReport()
12 {
13 this.ReportName = @"UserInfo";
14 this.ReportSavePath = AppDomain.CurrentDomain.BaseDirectory + @"Reports\Office\Excel\";
15 this.Excel = new WorkBook(AppDomain.CurrentDomain.BaseDirectory + @"Reports\Office\Excel\UserInfo.xls", "UserInfo");
16 this.Excel.Sheets.Add(new WorkSheet("MyUserInfo"));
17 for (int i = 0; i < this.DataSource.Tables[0].Rows.Count; i++)
18 {
19 DataRow dr = this.DataSource.Tables[0].Rows[i];
20 this.Excel.Sheets[0].Add(new WorkCell("B" + (i + 3).ToString(), dr.Field<string>("ID")));
21 this.Excel.Sheets[0].Add(new WorkCell("C" + (i + 3).ToString(), dr.Field<string>("NAME")));
22 }
23 }
24 }
25 }

 

 代码比较简单,附有调用示例,有兴趣的同学可以做进一步调整优化
下载地址如下:http://files.cnblogs.com/boylee/ExcelReport.zip

posted @ 2011-12-17 20:56 BoyLee 阅读(343) 评论(0) 编辑