將數據導出到Excel

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~安全

開發工具與關鍵技術:VS2015app

做者:張海鋒工具

撰寫時間:2019/5/25開發工具

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~測試

咱們該如何將數據導出到Excel表格呢?首先要將要導出的數據查詢出來,spa

查詢完後。建立Excel對象,給導出的Excel設置表頭,以下:excel

//建立Excel對象對象

            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();blog

            NPOI.SS.UserModel.ISheet sheet = book.CreateSheet();//建立Excel對象工做簿開發

            NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);//給sheet添加第一行的頭部標題

            row1.CreateCell(0).SetCellValue("學號");

            row1.CreateCell(1).SetCellValue("姓名");

            row1.CreateCell(2).SetCellValue("性別");

            row1.CreateCell(3).SetCellValue("班級");

            row1.CreateCell(4).SetCellValue("成績");

            row1.CreateCell(5).SetCellValue("合格類型");

當咱們把表頭設置完後,給sheet的沒行添加數據,由於添加的數據有多有少,

因此咱們須要用循環的方法:

for (int i = 0; i < listResult.Count; i++)

            {

                NPOI.SS.UserModel.IRow row = sheet.CreateRow(i + 1);//給sheet添加一行

                row.CreateCell(0).SetCellValue(listResult[i].StudentNumber);

                row.CreateCell(1).SetCellValue(listResult[i].StudentName);

                row.CreateCell(2).SetCellValue(listResult[i].StudentSex);

                row.CreateCell(3).SetCellValue(listResult[i].ClassName);

                row.CreateCell(4).SetCellValue(listResult[i].Achievement.ToString());

                row.CreateCell(5).SetCellValue(listResult[i].EligibleType);

            }

最後要給文件設置名稱:

  //輸出的文件名稱

            string fileName = "學生安全教育測試成績" + DateTime.Now.ToString

("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";

            //把Excel轉化爲文件流,輸出

            MemoryStream BookStream = new MemoryStream();//定義文件流

            book.Write(BookStream);//將工做薄寫入文件流

            BookStream.Seek(0, SeekOrigin.Begin);//輸出以前調用Seek(偏移量,遊標位置)方法:獲取文件流的長度

            return File(BookStream, "application/vnd.ms-excel", fileName); // 文件類型/文件名稱/

 

導出後的表格: