c# – ASP.NET Core直接在一次调用服务器(动态)中返回excel文件(
发布时间:2020-12-15 23:49:23 所属栏目:百科 来源:网络整理
导读:我找到了在服务器上生成excel文件(xlsx)的解决方案.首次调用它会删除文件demo.xlsx(如果存在)并生成新的demo.xlsx. 第一次打电话 http://localhost:8000/api/importexport/export 它生成excel文件(xlsx)并发送url进行下载 第二个电话 http://localhost:8000/
我找到了在服务器上生成excel文件(xlsx)的解决方案.首次调用它会删除文件demo.xlsx(如果存在)并生成新的demo.xlsx.
第一次打电话 它生成excel文件(xlsx)并发送url进行下载 第二个电话 下载文件. 这是解决方案的链接 这个解决方案的问题是我有两次调用服务器. 解决方法
这是我的解决方案
private readonly IHostingEnvironment _hostingEnvironment; public ImportExportController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } [HttpGet] [Route("Export")] public IActionResult Export() { string sWebRootFolder = _hostingEnvironment.WebRootPath; string sFileName = @"demo.xlsx"; string URL = string.Format("{0}://{1}/{2}",Request.Scheme,Request.Host,sFileName); FileInfo file = new FileInfo(Path.Combine(sWebRootFolder,sFileName)); if (file.Exists) { file.Delete(); file = new FileInfo(Path.Combine(sWebRootFolder,sFileName)); } using (ExcelPackage package = new ExcelPackage(file)) { // add a new worksheet to the empty workbook ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Employee"); //First add the headers worksheet.Cells[1,1].Value = "ID"; worksheet.Cells[1,2].Value = "Name"; worksheet.Cells[1,3].Value = "Gender"; worksheet.Cells[1,4].Value = "Salary (in $)"; //Add values worksheet.Cells["A2"].Value = 1000; worksheet.Cells["B2"].Value = "Jon"; worksheet.Cells["C2"].Value = "M"; worksheet.Cells["D2"].Value = 5000; worksheet.Cells["A3"].Value = 1001; worksheet.Cells["B3"].Value = "Graham"; worksheet.Cells["C3"].Value = "M"; worksheet.Cells["D3"].Value = 10000; worksheet.Cells["A4"].Value = 1002; worksheet.Cells["B4"].Value = "Jenny"; worksheet.Cells["C4"].Value = "F"; worksheet.Cells["D4"].Value = 5000; package.Save(); //Save the workbook. } var result = PhysicalFile(Path.Combine(sWebRootFolder,sFileName),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); Response.Headers["Content-Disposition"] = new ContentDispositionHeaderValue("attachment") { FileName = file.Name }.ToString(); return result; } 如果有人有更好的解决方案,请发布. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读