Пример #1
0
        public static void Import()
        {
            var read_path  = ExcelImportPath.GetReadFilePath();
            var write_path = ExcelImportPath.GetWriteFolderPath();

            ReadExcel(read_path, (work_book) =>
            {
                for (int i = 0; i < work_book.NumberOfSheets; ++i)
                {
                    var sheet      = work_book.GetSheetAt(i);
                    var sheet_name = sheet.SheetName;

                    if (ExcelImportUtility.IsInvalidSheet(sheet_name))
                    {
                        continue;
                    }

                    LitJson.JsonData table = new LitJson.JsonData();

                    List <string> header_list = new List <string>();

                    for (int j = sheet.FirstRowNum; j < sheet.LastRowNum + 1; ++j)
                    {
                        var row = sheet.GetRow(j);

                        LitJson.JsonData data = new LitJson.JsonData();

                        for (int k = row.FirstCellNum; k < row.LastCellNum; ++k)
                        {
                            var cell  = row.GetCell(k);
                            var value = string.Empty;

                            switch (cell.CellType)
                            {
                            case CellType.Boolean: value = cell.BooleanCellValue.ToString(); break;

                            case CellType.Numeric: value = cell.NumericCellValue.ToString(); break;

                            default: value = cell.StringCellValue; break;
                            }

                            if (ExcelImportUtility.IsHeader(value))
                            {
                                header_list.Add(ExcelImportUtility.GetHeader(value));
                            }
                            else if (k < header_list.Count)
                            {
                                data[header_list[k]] = value;
                            }
                        }

                        table.Add(data);
                    }

                    var save_path = $"{write_path}/{sheet_name}.json";

                    File.WriteAllText(save_path, table.ToJson(), System.Text.Encoding.UTF8);
                }

                AssetDatabase.Refresh();
            });
        }