第一次做数据导出Excel,刚看到这个的时候,首先想到的就是新建一个excel的文件,然后将它下载,后来询问别人,他们都推荐使用NPOI,发现这个很好用,就用博客记录一下
1、引用NPOI包
2、导出Excel
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="collection"></param>
/// <returns></returns>
public FileResult DownExcel(FormCollection collection)
{
var supplierName = collection["Supplier_SelectSupplierName"];//页面查询条件
var goodsName = collection["Supplier_SelectGoodsName"];//页面查询条件
var list = ServiceClients.SupplierClient.SelectBandingSupplier(_shopid.ShopID, goodsName, supplierName);//数据源
var wb = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet = wb.CreateSheet("Sheet1");//创建sheet
NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);//先创建标题那一行
row.CreateCell(0).SetCellValue("商品名称");//创建单元格
row.CreateCell(1).SetCellValue("供应商");
row.CreateCell(2).SetCellValue("价格");
for (int i = 0; i < list.Data.ToList().Count; i++)//填充数据
{
NPOI.SS.UserModel.IRow rowMap = sheet.CreateRow(i + 1);
rowMap.CreateCell(0).SetCellValue(list.Data.ToList()[i].GoodsName);
rowMap.CreateCell(1).SetCellValue(list.Data.ToList()[i].SupplierName);
rowMap.CreateCell(2).SetCellValue(list.Data.ToList()[i].Price.ToString(CultureInfo.InvariantCulture));
}
var ms = new System.IO.MemoryStream();
wb.Write(ms);
ms.Seek(0, System.IO.SeekOrigin.Begin);
var date = DateTime.Now.ToString("yyyyMMddHHmmss");
return File(ms, "application/vnd.ms-excel", "外购商品绑定" + date + ".xls");//输出
}