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._Applicationexcel = 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)生成结果如下图所示