Browse Source

解决导出问题,其它有错误

master
me 3 weeks ago
parent
commit
8d994fb2ba
  1. 22
      API/Wood.Service/Controllers/NormalBaseController.cs

22
API/Wood.Service/Controllers/NormalBaseController.cs

@ -87,6 +87,8 @@ namespace Wood.Service.Controllers
await _repository.DeleteAsync(id); await _repository.DeleteAsync(id);
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ; return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
} }
[HttpGet] [HttpGet]
public async Task<ActionResult<PagedResult<T>>> GetPaged( public async Task<ActionResult<PagedResult<T>>> GetPaged(
[FromQuery] int pageNumber = 1, [FromQuery] int pageNumber = 1,
@ -110,11 +112,13 @@ namespace Wood.Service.Controllers
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
return Ok(pagedResult); return Ok(pagedResult);
} }
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "", public async Task<FileStreamResult> Export<T>([FromQuery] int pageNumber = 1,
[FromQuery] bool isAscending = true, [FromQuery] int pageSize = 10,
[FromQuery] Dictionary<string, string> filters = null) [FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null) where T : class, new()
{ {
var pagingParams = new PagingParams var pagingParams = new PagingParams
{ {
@ -133,7 +137,7 @@ namespace Wood.Service.Controllers
} }
protected async Task<FileStreamResult> ExportFile(ICollection<T> dtos, string fileName) protected async Task<FileStreamResult> ExportFile<T>(ICollection<T> dtos, string fileName) where T: class, new()
{ {
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>(); var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>();
var res = await excelExporter.ExportAsByteArray<T>(dtos); var res = await excelExporter.ExportAsByteArray<T>(dtos);
@ -142,7 +146,7 @@ namespace Wood.Service.Controllers
[HttpGet] [HttpGet]
public async Task<IActionResult> GetImportTemplate() public async Task<IActionResult> GetImportTemplate<T>() where T: class, new()
{ {
try try
{ {
@ -150,8 +154,8 @@ namespace Wood.Service.Controllers
var importer = new ExcelImporter(); var importer = new ExcelImporter();
// 生成导入模板流(这里假设使用 YourModel 作为导入模型) // 生成导入模板流(这里假设使用 YourModel 作为导入模型)
using var stream = new MemoryStream(); byte[] by = await importer.GenerateTemplateBytes<T>();
await importer.GenerateTemplate(stream, typeof(T)); using var stream = new MemoryStream(by);
stream.Seek(0, SeekOrigin.Begin); stream.Seek(0, SeekOrigin.Begin);
// 设置友好的文件名,例如:"导入模板_20250530.xlsx" // 设置友好的文件名,例如:"导入模板_20250530.xlsx"

Loading…
Cancel
Save