コード例 #1
0
ファイル: ExcelUtils.cs プロジェクト: YB9527/CG
        public static IList <T> GetExcelToObject <T>(ISheet sheet, string XMLPath)
        {
            XMLTable xmlTable = XMLRead.GetXmlToXMLTabl(XMLPath)[0];
            ExcelReflectModel <T> reflectModel = new ExcelReflectModel <T>(sheet, xmlTable);
            IList <T>             list         = ExcelUtils.SheetToObjectsByXMLTable <T>(reflectModel);

            return(list);
        }
コード例 #2
0
        public static IList <JTTDSYQZ> GetJTTDSYQZS(string excelPath)
        {
            XMLTable xmlTable = XMLRead.GetXmlToXMLTabl(ExcelRelect)[0];
            ExcelReflectModel <JTTDSYQZ> model = new ExcelReflectModel <JTTDSYQZ>(excelPath, xmlTable);
            IList <JTTDSYQZ>             list  = ExcelUtils.SheetToObjectsByXMLTable <JTTDSYQZ>(model);

            return(list);
        }
コード例 #3
0
        public static void SetRowValue <T>(object obj, ExcelReflectModel <T> reflectModel, IRow row)
        {
            object value;
            Dictionary <int, Clazz> clazzDic = reflectModel.TitleDic;

            foreach (int index in clazzDic.Keys)
            {
                ICell cell = row.GetCell(index);
                if (cell == null)
                {
                    cell = row.CreateCell(index);
                }
                value = clazzDic[index].GetMethodInfo.Invoke(obj, null);
                if (value != null)
                {
                    cell.SetCellValue(value.ToString());
                }
            }
        }
コード例 #4
0
ファイル: ExcelUtils.cs プロジェクト: YB9527/CG
        public static IList <T> SheetToObjectsByXMLTable <T>(ExcelReflectModel <T> model)
        {
            List <T>   list         = new List <T>();
            MethodInfo m            = typeof(T).GetMethod("set_Row");
            bool       hasRowMethod = false;

            if (m != null)
            {
                hasRowMethod = true;
            }
            ISheet sheet    = model.Sheet;
            int    startRow = model.StartRowIndex;
            Dictionary <int, XMLObject> xmlObjectDic = model.XMLObjectDic;
            T   obj;
            int rowCount = model.LastRowIndex - model.EndRowIndex;

            while (startRow <= rowCount)
            {
                IRow row = sheet.GetRow(startRow);
                if (row == null)
                {
                    continue;
                }
                obj = RowToObject <T>(row, xmlObjectDic);
                if (obj != null)
                {
                    if (hasRowMethod)
                    {
                        m.Invoke(obj, new object[] { row });
                    }

                    list.Add(obj);
                }


                startRow++;
            }
            return(list);
        }
コード例 #5
0
ファイル: ExcelUtils.cs プロジェクト: YB9527/CG
 public static IList <T> SheetToObjects <T>(ExcelReflectModel <T> model)
 {
     return(ToObject <T>(model.Sheet, model.StartRowIndex, model.LastRowIndex, model.TitleDic));
 }