ExcelUtility 对excel的序列化与反序列化,支持当单元格中数据为空时将属性赋值为指定类型的默认值

源码https://github.com/leoparddne/EPPlusHelper

安装:

Install-Package ExcelUtility -Version 1.1.4

 需要为对象添加特性,

[Column]
//试用Column指定需要保存到excel中的字段
[Description(description:"ATest")]
//使用Description添加表头显示的名称

保存excel的完整示例如下

需要注意单元格定位从0开始,同时需要将待转换的类型传入

public class Table
    {
        [Column]
        [Description(description:"ATest")]
        public string A { get; set; }

        [Column]
        [Description(description: "BTest")]
        public string B { get; set; }

    }

ExcelUtility使用方式如下

//首先构造需要保存的对象
var
testData = new List<Entity.Table>() { new Entity.Table { A = "11111f", B = "1111111111111fff" }, new Entity.Table { A = "1111f", B = "111111fff" } }; //在构造函数中传入表名,如果存在此文件则会删除旧文件 using (var tools = new ExcelHelper(new System.IO.FileInfo("test.xls"))) { //1:自动化的将list中的数据写入表格 //写入默认的sheet1中 tools.SetData<Entity.Table>(testData); //可以指定写入的表名 //tools.SetData<Entity.Table>(testData, "testSheet"); tools.Save(); } using (var tools = new ExcelHelper(new System.IO.FileInfo("test.xls"))) { //2:提供自定义的方式向任何表写入数据 //首先获取指定的sheet页 //提供默认参数为sheet1,即默认的sheet页 //var workSheet = tools.GetWorkSheet(); //也可以指定sheet页名称 var workSheet = tools.GetWorkSheet("newSheetName"); //向指定的单元格写入数据 workSheet.WriteCell(0, 0, "value"); tools.Save(); }

 将excel中的数据映射到指定的数据类型

要求同上,需要

[Column]
//试用Column指定需要保存到excel中的字段
[Description(description:"ATest")]
//使用Description添加表头显示的名称

使用方式如下

//选择需要转换的表格并指定欲转换类型
            var t = new Excel2Data<Table>(new System.IO.FileInfo("test.xls"));
            //指定待转换的sheet页,默认值为sheet1
            //var data = t.GetData();
            var data=t.GetData("newSheetName");

 

posted @ 2019-11-07 14:31  Hey,Coder!  阅读(1168)  评论(0编辑  收藏  举报