所用技术栈
- 前端:React,Antd
- 后端:ASP.NET CORE ,System.Linq.Dynamic.Core,EPPlus.Core
基本思路
- NetCore 解决生成 Excel 文件(流),使用了 EPPlus.Core。
- EF(LINQ)解决动态列的问题,,System.Linq.Dynamic.Core
- 解决文件下载的问题,最开始的思路是,直接传流到前端,前端读 response.blob(),然后生成文件,结果......失败,因为所有请求要先过 Node 层,流经过一次转发后,死活没办法变成 excel 文件。前端能力不强,所以放弃这个思路了。 按照后端的解决方式,就是直接把文件生成到服务端,然后返回路径给前端,前端跳转一次,就可以实现下载,尝试,成功!
核心代码
后端代码模块
public class ExportRequestModel<T>
{
public List<ExportRowModel> RowRequest { get; set; }
/// <summary>
/// 导出人ID
/// </summary>
public string ExportUserID { get; set; }
/// <summary>
/// 导出模块名称
/// </summary>
public string ModuleName { get; set; }
public T Where { get; set; }
}
public class ExportRowModel
{
public string RowName { get; set; }
public string RowKey { get; set; }
public string TableName { get; set; }
}
ExcelHelper.cs:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于