zoukankan      html  css  js  c++  java
  • 使用ExcelPackage,OfficeOpenXml做EXCEL导入时一个方法的坑,对应类的字段只能定义为string类型

    private static List ReadExcelPackage(T t, ExcelPackage package, ExcelWorksheet worksheet, int StartRow = 1) where T : new()
    {
    var rowCount = worksheet.Dimension?.Rows;
    var colCount = worksheet.Dimension?.Columns;

            if (!rowCount.HasValue || !colCount.HasValue)
            {
                return null;
            }
    
            var properties = t.GetType().GetProperties();
            var lists = new List<T>();
    
            for (int row = StartRow; row <= rowCount.Value; row++)
            {
                var model = new T();
                for (int col = 0; col < properties.Length; col++)
                {
                    var value = worksheet.Cells[row, col + 1].Value;
                    properties[col].SetValue(model, value?.ToString());
                }
                lists.Add(model);
            }
    
            return lists;
        }
    

    为了图省事,T类型的类字段只能定义为string类型的,
    如果定义为int类型时等,会出现异常转换错误,使用时要注意。
    ,properties[col].SetValue(model, value?.ToString());

  • 相关阅读:
    day04 Java Web 开发入门
    day0203 XML 学习笔记
    canvas 基础
    TreeSet
    IntelliJ IDEA
    elastic-job-lite
    Spring 同一接口注入多个bean实现
    StringRedisTemplate
    小记
    linux 命令
  • 原文地址:https://www.cnblogs.com/hmfl/p/15471123.html
Copyright © 2011-2022 走看看