需求是根据传过来的两个集合 动态生成excel表格模板 并下载
以下面为例:
先NuGet安装包
代码:
/// <summary>
/// 下载批量导入模板window版本
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost("GetImportFile")]
public IActionResult GetImportFile(ImportTemplateInDto inDto)
{
//需求是根据传过来的两个集合Students和Projects 动态生成下载模板 其中前三列代表学生基本信息且根据所选择的给每一个单元格附上值Projects每一个单元格的值为空即可但是表头需要动态添加进去
//下载下来的文件名
string fileName = $"批量导入.xlsx";
System.Data.DataTable dt = new DataTable();
//添加前三列 表头
dt.Columns.Add(new DataColumn("学生姓名(不可更改)", typeof(string)));
dt.Columns.Add(new DataColumn("学号(不可更改)", typeof(string)));
dt.Columns.Add(new DataColumn("性别(填”男/女“)", typeof(string)));
//根据所选的项目集合 动态添加表头
foreach (var item in inDto.Projects)
{
dt.Columns.Add(new DataColumn($"{item.Name}", typeof(string)));
}
//为前三列的学生赋值
for (int i = 0; i < inDto.Students.Count; i++)
{
DataRow dataRow = dt.NewRow(