Asp.net mvc 在.net核心web api中下载Excel文件
我正在尝试在asp.net核心web api中创建并下载excel文件。每当我从postman或Advanced Rest客户端点击服务时,我都会得到文件内容的JSON数据作为响应,而不是下载文件。我的代码如下: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
[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;i for(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)){//