编程语言
首页 > 编程语言> > ASP.NET 开源导入导出库Magicodes.IE 多Sheet导入教程

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

作者:互联网

多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

标签:ASP,Sheet,get,ImporterHeader,导入,set,ErrorMessage,public
来源: https://www.cnblogs.com/yyfh/p/13223922.html