Exemple #1
0
        public static Dictionary <string, ExcelSheet> GetExcleSheet(List <string[]> fils)
        {
            Dictionary <string, ExcelSheet> dicSheet = new Dictionary <string, ExcelSheet>();

            foreach (string[] file in fils)
            {
                DataSet ds = ExcelUtil.ReadExcelSheetData(file[1]);
                foreach (object obj in ds.Tables)
                {
                    DataTable dt         = (DataTable)obj;
                    string[]  sheeltInfo = dt.TableName.Split(new char[]
                    {
                        '#'
                    });
                    bool flag2 = sheeltInfo.Length < 2;
                    if (!flag2)
                    {
                        string[] sheeltTypeInfo = sheeltInfo[0].Split(new char[]
                        {
                            '_'
                        });
                        string tableName = ExcelUtil.ToFirstUpper(sheeltTypeInfo[0]);
                        bool   isVert    = false;
                        bool   flag3     = sheeltTypeInfo.Length > 1;
                        if (flag3)
                        {
                            bool flag4 = sheeltTypeInfo[1].ToLower() == "v";
                            if (flag4)
                            {
                                isVert = true;
                            }
                        }

                        ExcelSheet sheet;
                        bool       flag5 = !dicSheet.TryGetValue(tableName, out sheet);
                        if (flag5)
                        {
                            sheet         = new ExcelSheet();
                            sheet.Name    = tableName;
                            sheet.NameDes = sheeltInfo[1];
                            bool flag6 = sheeltInfo.Length > 2;
                            if (flag6)
                            {
                                sheet.Interface = sheeltInfo[2];
                            }

                            sheet.IsVert   = isVert;
                            sheet.FileName = file[0];
                            sheet.Table    = new DataTable();
                            bool flag7 = !ExcelExportParse.setSheetTable(sheet, dt);
                            if (flag7)
                            {
                                return(null);
                            }

                            dicSheet.Add(tableName, sheet);
                        }
                        else
                        {
                            bool isVert2 = sheet.IsVert;
                            if (isVert2)
                            {
                                Debug.LogError("表" + sheet.FullName + "是竖表结构,不能做分表");
                                return(null);
                            }

                            ExcelSheet nSheet = new ExcelSheet();
                            nSheet.Table = new DataTable();
                            nSheet.Name  = dt.TableName;
                            bool flag8 = !ExcelExportParse.setSheetTable(nSheet, dt);
                            if (flag8)
                            {
                                return(null);
                            }

                            bool flag9 = sheet.IsVert != isVert || !ExcelExportParse.checkSheetColumns(sheet, nSheet);
                            if (flag9)
                            {
                                Debug.LogError("表" + sheet.FullName + "定义的表结构不一至,请检查!!!!,目标表:" + dt.TableName);
                                return(null);
                            }
                        }

                        ExcelExportParse.addSheetTableRow(sheet, dt);
                    }
                }
            }

            return(dicSheet);
        }