ASP.NET MVC导出Excel
首先下载 NPOI.dll 引用到项目中
建议下载地址:http://download.csdn.net/detail/pukuimin1226/5851747
前台代码:
<a href='/Admin/NurseUser/Excel' target='_blank'>导出Excel</a>
后台代码:
public FileResult Excel()
{
//获取list数据
var list = bll.NurseUserListExcel("", "ID asc"); //创建Excel文件的对象
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
//添加一个sheet
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //给sheet1添加第一行的头部标题
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("ID");
row1.CreateCell(1).SetCellValue("用户姓名");
row1.CreateCell(2).SetCellValue("电话");
row1.CreateCell(3).SetCellValue("注册时间");
row1.CreateCell(4).SetCellValue("邀请人ID");
row1.CreateCell(5).SetCellValue("邀请人名称");
row1.CreateCell(6).SetCellValue("邀请人电话");
row1.CreateCell(7).SetCellValue("总积分");
row1.CreateCell(8).SetCellValue("已使用积分");
row1.CreateCell(9).SetCellValue("可用积分");
//将数据逐步写入sheet1各个行
for (int i = 0; i < list.Count; i++)
{
NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(list[i].ID);
rowtemp.CreateCell(1).SetCellValue(list[i].Name);
rowtemp.CreateCell(2).SetCellValue(list[i].Phone);
rowtemp.CreateCell(3).SetCellValue(list[i].CreateTime.Value.ToString());
rowtemp.CreateCell(4).SetCellValue(list[i].InviterID.Value);
rowtemp.CreateCell(5).SetCellValue(list[i].iName);
rowtemp.CreateCell(6).SetCellValue(list[i].iPhone);
rowtemp.CreateCell(7).SetCellValue(list[i].IntegralSum);
rowtemp.CreateCell(8).SetCellValue(list[i].IntegralSy);
rowtemp.CreateCell(9).SetCellValue(list[i].IntegralKy);
}
// 写入到客户端
System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/vnd.ms-excel", "用户信息.xls");
} 2.动态生成Excle
public MemoryStream GetExecelByDT(DataTable dt) //返回的是文件流
{
HSSFWorkbook book = new HSSFWorkbook();
ISheet sheet = book.CreateSheet("2019项目列表情况表");
IRow ColumnsName = sheet.CreateRow(0);
//获取列名并且向Excel中填充列
for (int i = 0; i < dt.Columns.Count; i++)
{
ColumnsName.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
//向Excel中填充数据
//循环每一行
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow DataRow = sheet.CreateRow(i + 1);
//循环每一列
for (int j = 0; j < dt.Columns.Count; j++)
{
DataRow.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
}
}
MemoryStream ms = new MemoryStream();
book.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
return ms;
}
public void main()
{
//保存文件路径
string fullPath = System.IO.Path.Combine("文件路径" + 文件名.xlsx);
//根据数据生成文件流
MemoryStream exportData = new ExcelRanderBLL().GetExecelByDT(dt);
FileStream file = new FileStream(fullPath, FileMode.Create, FileAccess.Write);
//将文件流写入指定的文件里
exportData.WriteTo(file);
file.Close();
}