webapi到處excel


最近項目用的webapi前幾天做了個導出excel功能,給大家分享下,自己也記錄下。。。

在用的過程中,可以直接請求就可以得到下載的excel文件,在實際的項目中可以通過js打開新頁面,encodeURI請求,得到下載excel

NPOI類庫的引用,可以直接通過vs直接下載安裝

 

 1  WebApplication3.Controllers  2 {  3 public class SomeModel { public int id { get; set; } }//用於接收傳遞過來的參數  4 public class DownLoadController : ApiController  5  {  6 // GET: DownLoad  7 public string Index()  8  {  9 return ""; 10  } 11 12 //導出excel功能控制器 13 //[Authorize] 14  [HttpGet] 15 [ActionName("Export")]//控制器名稱重新定義,加上可以直接請求Exprot 16 public HttpResponseMessage PostExportData(SomeModel model) 17  { 18 var file = ExcelStream(); 19 //string csv = _service.GetData(model); 20 HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); 21 result.Content = new StreamContent(file); 22 //a text file is actually an octet-stream (pdf, etc) 23 //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 24 25 result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel"); 26 //we used attachment to force download 27 result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); 28 result.Content.Headers.ContentDisposition.FileName = "file.xls"; 29 return result; 30  } 31 32 //得到excel文件流 33 private System.IO.Stream ExcelStream() 34  { 35 //var list = dc.v_bs_dj_bbcdd1.Where(eps).ToList(); 36 HSSFWorkbook hssfworkbook = new HSSFWorkbook(); 37 38 ISheet sheet1 = hssfworkbook.CreateSheet("保稅訂單"); 39 40 41 IRow rowHeader = sheet1.CreateRow(0); 42 43 //生成excel標題 44 rowHeader.CreateCell(0).SetCellValue("匯通單號"); 45 rowHeader.CreateCell(1).SetCellValue("單據日期"); 46 rowHeader.CreateCell(2).SetCellValue("訂單號"); 47 rowHeader.CreateCell(3).SetCellValue("收件人"); 48 rowHeader.CreateCell(4).SetCellValue("收件人電話"); 49 rowHeader.CreateCell(5).SetCellValue("收件人地址"); 50 rowHeader.CreateCell(6).SetCellValue("物流公司"); 51 rowHeader.CreateCell(7).SetCellValue("運單號"); 52 rowHeader.CreateCell(8).SetCellValue("數量"); 53 rowHeader.CreateCell(9).SetCellValue("狀態"); 54 55 //生成excel內容 56 //for (int i = 0; i < list.Count; i++) 57 //{ 58 // NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1); 59 // rowtemp.CreateCell(0).SetCellValue(list[i].bh_user); 60 // rowtemp.CreateCell(1).SetCellValue(list[i].rq.Value.ToString("yyyy-MM-dd HH:mm:dd")); 61 // rowtemp.CreateCell(2).SetCellValue(list[i].bh_khdd); 62 // rowtemp.CreateCell(3).SetCellValue(list[i].re_name); 63 // rowtemp.CreateCell(4).SetCellValue(list[i].re_tel); 64 // rowtemp.CreateCell(5).SetCellValue(list[i].re_fulladdress); 65 // rowtemp.CreateCell(6).SetCellValue(list[i].bm_kdgs); 66 // rowtemp.CreateCell(7).SetCellValue(list[i].kddh); 67 // rowtemp.CreateCell(8).SetCellValue((int)list[i].sl_total); 68 // rowtemp.CreateCell(9).SetCellValue(list[i].mc_state_dd); 69 //} 70 71 for (int i = 0; i < 10; i++) 72  sheet1.AutoSizeColumn(i); 73 74 MemoryStream file = new MemoryStream(); 75  hssfworkbook.Write(file); 76 file.Seek(0, SeekOrigin.Begin); 77 78 return file; 79 80 //return File(file, "application/vnd.ms-excel", "保稅訂單.xls"); 81  } 82 83  } 84 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM