首先,先在咱們的項目資源管理器中找到引用,將NPIO插件引用到項目中
以下
再使用插件方法HSSFWorkbook建立工做簿web
//將查詢出來的數據轉化爲對象列表的格式 List<Student> listExaminee = listStu.ToList(); //HSSFWorkbook方法建立工做簿Excel HSSFWorkbook excelBook = new HSSFWorkbook(); //建立工做表並命名 NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet("考生信息");
工做簿建立好以後,咱們就來書寫工做表的表頭行app
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0); //建立9列並賦值 row1.CreateCell(0).SetCellValue("學號"); row1.CreateCell(1).SetCellValue("姓名"); row1.CreateCell(2).SetCellValue("身份證號"); row1.CreateCell(3).SetCellValue("性別"); row1.CreateCell(4).SetCellValue("學院"); row1.CreateCell(5).SetCellValue("專業"); row1.CreateCell(6).SetCellValue("年級"); row1.CreateCell(7).SetCellValue("班級"); row1.CreateCell(8).SetCellValue("帳號");
建立好表頭行以後,再來建立數據行svg
for (int i = 0; i < listStu.Count(); i++) { //建立行 NPOI.SS.UserModel.IRow rowTemp = sheet1.CreateRow(i + 1); rowTemp.CreateCell(0).SetCellValue(listExaminee[i].StudentNumber); rowTemp.CreateCell(1).SetCellValue(listExaminee[i].StudentName); rowTemp.CreateCell(2).SetCellValue(listExaminee[i].StudentIDNum); rowTemp.CreateCell(3).SetCellValue(listExaminee[i].StudentSex); rowTemp.CreateCell(4).SetCellValue(listExaminee[i].AcademeName); rowTemp.CreateCell(5).SetCellValue(listExaminee[i].SpecialtyName); rowTemp.CreateCell(6).SetCellValue(listExaminee[i].GradeName); rowTemp.CreateCell(7).SetCellValue(listExaminee[i].ClassName); rowTemp.CreateCell(8).SetCellValue(listExaminee[i].UserNuber); }
最後一步,使用IO流寫出數據。插件
var fileName = "考生信息" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls"; //將Excel表格轉化爲流,輸出 //建立文件流 System.IO.MemoryStream bookStream = new MemoryStream(); //文件寫入流(向流中寫入字節序列) excelBook.Write(bookStream); //輸出以前調用Seek(偏移量,遊標位置) 把0位置指定爲開始位置 bookStream.Seek(0, SeekOrigin.Begin); return File(bookStream, "application/vnd.ms-excel", fileName); }
到這裏,將表格數據導出到Excel工做表的方法就大功告成了,剩下的就是結合JS的使用來完成一鍵導出了。
excel