Exemplo n.º 1
0
        public static void CreateLangXml(ExcelSheet sheet)
        {
            if (ExcelExportOutSetting.IsCreateNew)
            {
                ExcelUtil.ResetDirectory(ExcelExportOutSetting.OutLanguageDir);
            }
            else
            {
                ExcelUtil.CheckCreateDirectory(ExcelExportOutSetting.OutLanguageDir);
            }

            for (int i = 1; i < sheet.Fields.Count; i++)
            {
                ExcelSheetTableField excelSheetTableField = sheet.Fields[i];
                CreatXml(excelSheetTableField.Name, sheet);
            }
        }
Exemplo n.º 2
0
        private static void addSheetTableRow(ExcelSheet sheet, DataTable dtSource)
        {
            bool isVert = sheet.IsVert;

            if (isVert)
            {
                DataRow expRow = sheet.Table.NewRow();
                for (int c = 0; c < sheet.Fields.Count; c++)
                {
                    ExcelSheetTableField field = sheet.Fields[c];
                    bool flag = field.Export == string.Empty;
                    if (!flag)
                    {
                        object val   = ExcelUtil.GetObjectValue(field.Type, field.Value, 1);
                        bool   flag2 = val == null;
                        if (flag2)
                        {
                            Debug.LogWarning(sheet.FullName + "表," + field.Name + "字段" + field.Type +
                                             "类型未写转换规则,已转换为string类型");
                            val = string.Empty;
                        }

                        expRow[c] = val;
                    }
                }

                sheet.Table.Rows.Add(expRow);
            }
            else
            {
                for (int i = 4; i < dtSource.Rows.Count; i++)
                {
                    DataRow expRow2 = sheet.Table.NewRow();
                    bool    flag3   = string.IsNullOrEmpty(dtSource.Rows[i][0].ToString());
                    if (!flag3)
                    {
                        int cellIndex = 0;
                        for (int f = 0; f < sheet.Fields.Count; f++)
                        {
                            ExcelSheetTableField field2 = sheet.Fields[f];
                            bool flag4 = field2.Export == string.Empty;
                            if (flag4)
                            {
                                cellIndex++;
                            }
                            else
                            {
                                string cellVal = dtSource.Rows[i][cellIndex].ToString();
                                cellIndex++;
                                object val2  = ExcelUtil.GetObjectValue(field2.Type, cellVal, field2.FieldCount);
                                bool   flag5 = val2 == null;
                                if (flag5)
                                {
                                    Debug.LogWarning(sheet.FullName + "表," + field2.Name + "字段" + field2.Type +
                                                     "类型未写转换规则,已转换为string类型");
                                    val2 = string.Empty;
                                }

                                bool flag6 = field2.FieldCount > 1;
                                if (flag6)
                                {
                                    for (int j = 1; j < field2.FieldCount; j++)
                                    {
                                        ExcelUtil.AddListValue(field2.Type, dtSource.Rows[i][cellIndex].ToString(),
                                                               ref val2);
                                        cellIndex++;
                                    }
                                }
                                expRow2[f] = val2;
                            }
                        }

                        sheet.Table.Rows.Add(expRow2);
                    }
                }
            }
        }
Exemplo n.º 3
0
        private static bool setSheetTable(ExcelSheet sheet, DataTable dtSource)
        {
            bool flag = dtSource.Columns.Count > 100;
            bool result;

            if (flag)
            {
                Debug.LogError(sheet.FullName + "表列数太多,请检查表格式");
                result = false;
            }
            else
            {
                bool isVert = sheet.IsVert;
                if (isVert)
                {
                    bool flag2 = dtSource.Rows.Count < 1 && dtSource.Columns.Count < 5;
                    if (flag2)
                    {
                        Debug.LogError(sheet.FullName + "表列数不对");
                        result = false;
                    }
                    else
                    {
                        int emptyRow = 0;
                        for (int i = 1; i < dtSource.Rows.Count; i++)
                        {
                            bool flag3 = dtSource.Rows[i][0].ToString() == string.Empty;
                            if (flag3)
                            {
                                emptyRow++;
                                bool flag4 = emptyRow > 3;
                                if (flag4)
                                {
                                    break;
                                }
                            }
                            else
                            {
                                emptyRow = 0;
                                ExcelSheetTableField field = new ExcelSheetTableField();
                                field.Name        = dtSource.Rows[i][0].ToString();
                                field.Export      = dtSource.Rows[i][1].ToString();
                                field.Type        = dtSource.Rows[i][2].ToString().ToLower();
                                field.Value       = dtSource.Rows[i][3].ToString();
                                field.Des         = dtSource.Rows[i][4].ToString();
                                field.IsInterface = (field.Export.IndexOf('I') != -1);
                                sheet.Table.Columns.Add(field.Name, ExcelUtil.GetStringType(field.Type));
                                sheet.Fields.Add(field);
                            }
                        }

                        sheet.Export    = dtSource.Rows[1][1].ToString().ToUpper();
                        sheet.IsEncrypt = (sheet.Export.IndexOf('@') != -1);
                        result          = true;
                    }
                }
                else
                {
                    bool flag5 = dtSource.Rows.Count < 4 && dtSource.Columns.Count < 2;
                    if (flag5)
                    {
                        Debug.LogError(sheet.FullName + "表列数不对");
                        result = false;
                    }
                    else
                    {
                        ExcelSheetTableField field2 = null;
                        for (int j = 0; j < dtSource.Columns.Count; j++)
                        {
                            string[] arrInfo = dtSource.Rows[3][j].ToString().Split(new char[]
                            {
                                '#'
                            });
                            string fieldName = arrInfo[0];
                            bool   flag6     = fieldName == string.Empty;
                            if (flag6)
                            {
                                break;
                            }

                            bool flag7 = field2 == null || field2.Name != fieldName;
                            if (flag7)
                            {
                                field2             = new ExcelSheetTableField();
                                field2.Des         = dtSource.Rows[0][j].ToString();
                                field2.Export      = dtSource.Rows[1][j].ToString();
                                field2.Type        = dtSource.Rows[2][j].ToString().ToLower();
                                field2.Name        = fieldName;
                                field2.IsInterface = (field2.Export.IndexOf('I') != -1);
                                field2.FieldCount  = 1;
                                sheet.Fields.Add(field2);
                                sheet.Table.Columns.Add(field2.Name, ExcelUtil.GetStringType(field2.Type));
                            }
                            else
                            {
                                ExcelSheetTableField excelSheetTableField = field2;
                                excelSheetTableField.Des =
                                    excelSheetTableField.Des + "\n" + dtSource.Rows[0][j].ToString();
                                field2.FieldCount++;
                            }
                        }

                        sheet.Export    = dtSource.Rows[1][0].ToString().ToUpper();
                        sheet.IsEncrypt = (sheet.Export.IndexOf('@') != -1);
                        result          = true;
                    }
                }
            }

            return(result);
        }