ASP.NET 开源导入导出库Magicodes.IE 多Sheet导入教程

时间:2020-07-02 13:19:26   收藏:0   阅读:60

多Sheet导入教程

说明

本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入。

要点

主要步骤

1. 多个相同格式的Sheet数据导入

1.1 创建导入Sheet的Dto

主要代码如下所示:

1.2 创建导Excel入Dto

主要代码如下所示:

1.3 Excel模板

注意:Excel里的多个Sheet列名必须一致(对应同一个Sheet的Dto类型)

模板目录:src\Magicodes.ExporterAndImporter.Tests\TestFiles\Import\班级学生基础数据导入.xlsx

第一个Sheet:
技术图片

第二个Sheet:
技术图片

1.4 导入代码

IExcelImporter Importer = new ExcelImporter();

var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "班级学生基础数据导入.xlsx");

//获取到的导入结果为一个字典类型,Key为Sheet名,Value为Sheet对应的数据
var importDic = await Importer.ImportSameSheets<ImportClassStudentDto, ImportStudentDto>(filePath);

//遍历字典,获取每个Sheet的数据
foreach (var item in importDic)
{
    var import = item.Value;
    //导入的Sheet数据
    var studentList = import.Data.ToList();
}

2. 多个不同格式的Sheet数据导入

2.1 创建导入Sheet的Dto

主要代码如下所示:

2.2 创建导Excel入Dto

主要代码如下所示:

2.3 Excel模板

模板目录:src\Magicodes.ExporterAndImporter.Tests\TestFiles\Import\学生基础数据及缴费流水号导入.xlsx

学生基础数据Sheet:
技术图片

缴费流水号Sheet:
技术图片

2.4 导入代码

IExcelImporter Importer = new ExcelImporter();

var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "学生基础数据及缴费流水号导入.xlsx");

//获取到的导入结果为一个字典类型,Key为Sheet名,Value为Sheet对应的数据
var importDic = await Importer.ImportMultipleSheet<ImportStudentAndPaymentLogDto>(filePath);

//遍历字典,获取每个Sheet的数据
foreach (var item in importDic)
{
    var import = item.Value;
    //导入的Sheet数据,
    if (item.Key == "1班导入数据")
    {
        //多个不同类型的Sheet返回的值为object,需要进行类型转换
        ImportStudentDto dto = (ImportStudentDto) import.Data.ElementAt(0);
    }
    if (item.Key == "缴费数据")
    {
        ImportPaymentLogDto dto = (ImportPaymentLogDto)import.Data.ElementAt(0);
    }
}

来自:tanyongzheng

Reference

https://github.com/dotnetcore/Magicodes.IE

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!