ASP.NET后台自定义导出Excel

关于导出,属于老生常谈了,下面就总结下我自己遇到的一些导出吧。

1、使用Excel组件进行导出(需要安装Microsoft Office Excel)。

下面为代码,希望可以帮助别人。

1)准备数据源

//首先创建一个DataTable
DataTable dtSource = new DataTable();
dtSource.Columns.Add("ID");
dtSource.Columns.Add("Name");
dtSource.Columns.Add("Description");

//往DataTable中添加一些数据
for(int i=0;i<10;i++){
  DataRow row = dtSource.NewRow();
  row["ID"]=i+1;
  row["Name"]="Tom And Jerry";
  row["Description"]="这是一个经典的动画片,猫和老鼠";
  dtSource.Rows.Add(row);
}

  string filePath = HttpContext.Current.Server.MapPath("~/UpFiles/file/aa.xls");

 2)创建Excel对象,并添加数据

//
Microsoft.Office.Interop.Excel.Application excel = null;   //创建一个Office对象,或者使用Microsoft.Office.Interop.Excel._Application
  excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
  excel.Workbooks.Add(true);
  int rowIndex=1; //Excel中的行,从1开始
  int colIndex=1; //Excel中的列,从1开始
  //添加标题
 foreach(DataColumn col in dtSource.Columns){
   excel.Cells[rowIndex,colIndex] = col.ColumnName;
   colIndex++;
  }
  //添加表格内容
 foreach(DataRow row in dtSource.Rows){
   rowIndex++;
   colIndex = 1;
   foreach(DataColumn col in dtSource.Columns){
      excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
      colIndex++;
   }
  }

  excel.ActiveWorkbook.SaveAs(filePath,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange
 ,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

  excel.Quit();
  excel = null;

 3)生成结果如下图所示

posted @ 2015-01-13 16:38  幼稚的人(2)  阅读(308)  评论(0编辑  收藏  举报