Asp.net mvc 在.net核心web api中下载Excel文件

Asp.net mvc 在.net核心web api中下载Excel文件,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,我正在尝试在asp.net核心web api中创建并下载excel文件。每当我从postman或Advanced Rest客户端点击服务时,我都会得到文件内容的JSON数据作为响应,而不是下载文件。我的代码如下: [HttpGet] [Route("GetLogsPdfORExcel")] public IActionResult GetLogsPdfORExcel() { var result = _d

我正在尝试在asp.net核心web api中创建并下载excel文件。每当我从postman或Advanced Rest客户端点击服务时,我都会得到文件内容的JSON数据作为响应,而不是下载文件。我的代码如下:

        [HttpGet]
        [Route("GetLogsPdfORExcel")]
        public IActionResult GetLogsPdfORExcel()
        {


            var result = _dataContext.GetLogsPdfORExcel();
            if (result != null)
            {
                this.ExportExcel(result);
            }

            return Ok(result);
        }

        public FileStreamResult ExportExcel(DataTable dt)
        {
            string excelName = "LogsRecord";

            ExcelPackage package = new ExcelPackage();
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("sheet1");
            int currentRowNo = 5;
            int totalRows = dt.Rows.Count;
            int k = 0;
            foreach (DataColumn column in dt.Columns)
            {
                worksheet.Cells[currentRowNo, k + 1].Value = column.ColumnName;
                k++;
            }
            currentRowNo++;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    worksheet.Cells[currentRowNo, j + 1].Value = Convert.ToString(dt.Rows[i][j]);
                }
                currentRowNo++;
            }

            int columnCount = dt.Columns.Count;
            for (int i = 1; i <= columnCount; i++)
                worksheet.Column(i).AutoFit();
            worksheet.Row(1).Height = 55;
            worksheet.SelectedRange["A1"].Style.Font.Size = 14;
            worksheet.Row(5).Style.Font.Bold = true;



            using (var memoryStream = new MemoryStream())
            {
                memoryStream.Position = 0;
                var contentType = "application/octet-stream";
                var fileName = "fileName.xlsx";
                return File(memoryStream, contentType, fileName);
            }
        }

[HttpGet]
[路由(“GetLogsPdfORExcel”)]
public IActionResult GetLogsPdfORExcel()
{
var result=_dataContext.GetLogsPdfORExcel();
如果(结果!=null)
{
此.ExportExcel(结果);
}
返回Ok(结果);
}
公共文件流结果导出Excel(数据表dt)
{
字符串excelName=“LogsRecord”;
ExcelPackage=新的ExcelPackage();
Excel工作表=package.Workbook.Worksheets.Add(“sheet1”);
int currentRowNo=5;
int totalRows=dt.Rows.Count;
int k=0;
foreach(dt.Columns中的DataColumn列)
{
工作表.Cells[currentRowNo,k+1].Value=column.ColumnName;
k++;
}
currentRowNo++;
对于(int i=0;ifor(int i=1;i返回文件流结果,而不是数据表

[HttpGet]
[Route("GetLogsPdfORExcel")]
public IActionResult GetLogsPdfORExcel() {
    var result = _dataContext.GetLogsPdfORExcel();
    if (result != null) {
        return this.ExportExcel(result);
    }
    return BadRequest(); //Or some other relevant response.
}
也不需要处理流,因为FileStreamResult将在完成后处理它

//...

var memoryStream = new MemoryStream();
using (var package = new ExcelPackage(memoryStream)) { //<<< pass stream

    //...populate package

    package.Save();
}

memoryStream.Position = 0;
var contentType = "application/octet-stream";
var fileName = "fileName.xlsx";
return File(memoryStream, contentType, fileName);
/。。。
var memoryStream=新的memoryStream();

使用(var package=new excelpack(memoryStream)){/返回文件流结果,而不是数据表

[HttpGet]
[Route("GetLogsPdfORExcel")]
public IActionResult GetLogsPdfORExcel() {
    var result = _dataContext.GetLogsPdfORExcel();
    if (result != null) {
        return this.ExportExcel(result);
    }
    return BadRequest(); //Or some other relevant response.
}
也不需要处理流,因为FileStreamResult将在完成后处理它

//...

var memoryStream = new MemoryStream();
using (var package = new ExcelPackage(memoryStream)) { //<<< pass stream

    //...populate package

    package.Save();
}

memoryStream.Position = 0;
var contentType = "application/octet-stream";
var fileName = "fileName.xlsx";
return File(memoryStream, contentType, fileName);
/。。。
var memoryStream=新的memoryStream();
使用(var package=new ExcelPackage(memoryStream)){//