从excel读取变量信息到实体类

发布时间 2023-09-08 21:50:49作者: hanzq_go

上位机组态过程中,需要将变量信息读取到实体类中,如下图所示:

需要做的是:将左图中的变量信息读取到右边的Model类中,保存为List<Model>,以便用于数据解析和数据存储。

方法1,可以将变量信息保存为XML文件,通过读取xml文件将数据保存到List<Model>中。

该方法的缺点:所有数据点需要手动写入xml文件,如果数据点特别多,写入xml文件耗时且容易出错。

 

这里推荐使用方法2,将所有变量信息保存为Exel文件,通过读取excel文件中的数据,将其保存到List<Model>中。

优点是,一般plc中的变量信息,都可以保存为excel文件。而且即使没有变量信息,通过excel创建变量信息表也是非常容易的,相比xml文件要简单很多。

 

这里重点演示如何将excel文件中的变量信息保存到实力类中。

1、使用ExcelDataReader,在NuGet中安装ExcelDataReader;

2、创建一个实体类Model,如下:

 3、使用ExcelDataReader,打开excel文件,并将文件中的数据读取到List<Model>中

            List<Model> models = new List<Model>();
            using (var stream = File.Open("E:\\CshapCode\\各种C_sharp功能测试\\读取excel数据到实体类\\bin\\Debug\\modeTable.xls", FileMode.Open, FileAccess.Read))
            {
                using (var reader = ExcelReaderFactory.CreateReader(stream))
                {
                    // 跳过表头行
                    reader.Read();

                    while (reader.Read())
                    {
                        var model = new Model
                        {
                            ParamName = reader.GetString(0),
                            ParamAddress = reader.GetString(1),
                            ParamType = reader.GetString(2),
                            ParamNote = reader.GetString(3),
                            IsSavaToDB = reader.GetString(4) == "" ? true : false,
                        };

                        models.Add(model);
                    }
                }
            }

 

读取结果: