为了方便代码编写和测试,把很多代码都放在一个class里面,实际开发根据需要放到对应的目录下即可。
1.使用nuget下载安装miniexcel;
2.编写对应的测试接口,具体代码如下:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
using AutoMapper;
using MiniExcelLibs.Attributes;
using MiniExcelLibs;
using MiniExcelLibs.OpenXml;
using System.Linq;
namespace YY.Webapi.Controllers
{
/// <summary>
/// miniexcel测试
/// </summary>
[Route("api/[controller]")]
[ApiController]
[Produces("application/json")]
[AllowAnonymous]
public class MiniExcelController : ControllerBase
{
private readonly IMapper _mapper;
public MiniExcelController(
IMapper mapper
)
{
_mapper = mapper;
}
/// <summary>
/// 固定列导出
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost("Export")]
public async Task<IActionResult> Export()
{
try
{
var models = new Custome().GetProducts();
var exportDtos = _mapper.Map<List<CustomeExportDto>>(models);
var memoryStream = new MemoryStream();
memoryStream.SaveAs(exportDtos);
memoryStream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = $"固定列报表导出-{
DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"
};
}
catch (Exception ex)
{
throw