1、添加NPOI包,添加引用。
2、前端調用方法
<button type="button" class="btn btn-primary" onclick="ExportToExcel()">導出Excel</button>
<script type="text/javascript">
//導出Excel
function ExportToExcel() {
window.location.href = "/Home/DataExport"
}
</script>
3、后端寫法
#region Excel導出 public FileResult DataExport() { List<Phone> ExListInfo = new List<Phone>(); Phone p = new Phone("小米5", "小米", "3500"); Phone p1 = new Phone("小米2A", "小米", "2500"); Phone p2 = new Phone("榮耀20Pro", "華為", "3500"); ExListInfo.Add(p); ExListInfo.Add(p1); ExListInfo.Add(p2); //ExportExcel(ExListInfo); //創建Excel文件的對象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); //添加一個sheet ISheet sheet1 = book.CreateSheet("Sheet1"); //貌似這里可以設置各種樣式字體顏色背景等,但是不是很方便,這里就不設置了 //給sheet1添加第一行的頭部標題 IRow row1 = sheet1.CreateRow(0); row1.CreateCell(0).SetCellValue("手機名稱"); row1.CreateCell(1).SetCellValue("手機型號"); row1.CreateCell(2).SetCellValue("手機價格"); //....N行 //將數據逐步寫入sheet1各個行 for (int i = 0; i < ExListInfo.Count; i++) { IRow rowtemp = sheet1.CreateRow(i + 1); rowtemp.CreateCell(0).SetCellValue(ExListInfo[i].PhoneName); rowtemp.CreateCell(1).SetCellValue(ExListInfo[i].PhoneType); rowtemp.CreateCell(2).SetCellValue(ExListInfo[i].PhonePrice); //....N行 } // 寫入到客戶端 MemoryStream ms = new MemoryStream(); book.Write(ms); ms.Seek(0, SeekOrigin.Begin); DateTime dt = DateTime.Now; string dateTime = dt.ToString("yyMMddHHmmssfff"); string fileName = "手清價格一覽表" + dateTime + ".xls"; return File(ms, "application/vnd.ms-excel", fileName); } #endregion
4、效果展示
參考網址:
https://www.cnblogs.com/CallmeYhz/p/4997691.html