从excel读取变量信息到实体类
上位机组态过程中,需要将变量信息读取到实体类中,如下图所示:
需要做的是:将左图中的变量信息读取到右边的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); } } }
读取结果: