【修复】修复 bean设置属性sep后,被excel中字段sep分割后,再次被bean属性sep分割,导致解析失败的问题

【修复】修复 在excel中定义的table,__tag__被当作普通字段,但又缺失type列,代码中没仔细处理导致产生空指针异常的bug
main
walon 2021-10-21 16:32:00 +08:00
parent 6c50e66915
commit 7d4b9e049d
3 changed files with 10 additions and 6 deletions

View File

@ -22,7 +22,7 @@
luban相较于常规的excel导表工具有以下核心优势 luban相较于常规的excel导表工具有以下核心优势
- 增强了excel格式。可以比较简洁地excel配置**任意复杂**的数据,像子结构、结构列表,以及更复杂的深层次的嵌套结构都能直接解析处理。 - 增强了excel格式。可以比较简洁地excel配置**任意复杂**的数据,像子结构、结构列表,以及更复杂的深层次的嵌套结构都能直接解析处理。
- 完备的类型系统和多原始数据支持xml、json、lua、yaml可以轻松表达和解析**任意复杂**的数据。意味着传统excel导表工具无法处理的技能、行为树、副本等等复杂配置luban也能够统一处理了彻底将程序从复杂的配置解析中完全解放出来。 - 完备的类型系统和多原始数据支持xml、json、lua、yaml可以轻松表达和解析**任意复杂**的数据。意味着传统excel导表工具无法处理的技能、行为树、副本等等复杂配置luban也能够统一处理了彻底将程序从复杂的配置解析中解放出来。
- 完善的工作流支持。如id的外键引用检查;资源合法性检查;灵活的数据源定义(拆表或者多表合一);灵活的分组导出机制;多种本地化支持;生成极快日常迭代300ms以内Excel2TextDiff工具方便diff查看excel文件的版本间差异 - 完善的工作流支持。如id的外键引用检查;资源合法性检查;灵活的数据源定义(拆表或者多表合一);灵活的分组导出机制;多种本地化支持;生成极快日常迭代300ms以内Excel2TextDiff工具方便diff查看excel文件的版本间差异
- **=== LubanAssistant Excel插件 ===**。支持把json、lua、xml等文本格式的配置数据加载到excel中批量编辑处理最后再保存回原文件较好地解决大型项目中多人合作数据编辑冲突合并的问题较好解决在编辑器中制作的配置难以在excel中批量修改的问题。 - **=== LubanAssistant Excel插件 ===**。支持把json、lua、xml等文本格式的配置数据加载到excel中批量编辑处理最后再保存回原文件较好地解决大型项目中多人合作数据编辑冲突合并的问题较好解决在编辑器中制作的配置难以在excel中批量修改的问题。

View File

@ -284,12 +284,12 @@ namespace Luban.Job.Cfg.DataCreators
if (row.Row != null) if (row.Row != null)
{ {
var s = row.AsStream(sep); var s = row.AsStream("");
return type.Apply(ExcelStreamDataCreator.Ins, s); return type.Apply(ExcelStreamDataCreator.Ins, s);
} }
else if (row.Rows != null) else if (row.Rows != null)
{ {
var s = row.AsMultiRowConcatStream(sep); var s = row.AsMultiRowConcatStream("");
return type.Apply(ExcelStreamDataCreator.Ins, s); return type.Apply(ExcelStreamDataCreator.Ins, s);
} }
else if (row.Fields != null) else if (row.Fields != null)

View File

@ -420,13 +420,17 @@ namespace Luban.Job.Cfg.DataSources.Excel
var fields = new Dictionary<string, FieldInfo>(); var fields = new Dictionary<string, FieldInfo>();
foreach (var subTitle in title.SubTitleList) foreach (var subTitle in title.SubTitleList)
{ {
if (subTitle.Name.StartsWith("__"))
{
continue;
}
fields.Add(subTitle.Name, new FieldInfo() fields.Add(subTitle.Name, new FieldInfo()
{ {
Name = subTitle.Name, Name = subTitle.Name,
Tags = title.Tags, Tags = title.Tags,
Type = typeRow != null ? typeRow[subTitle.FromIndex].Value?.ToString() : "", Type = typeRow?[subTitle.FromIndex].Value?.ToString() ?? "",
BriefDesc = briefDescRow != null ? briefDescRow[subTitle.FromIndex].Value?.ToString() : "", BriefDesc = briefDescRow?[subTitle.FromIndex].Value?.ToString() ?? "",
DetailDesc = destailDescRow != null ? destailDescRow[subTitle.FromIndex].Value?.ToString() : "", DetailDesc = destailDescRow?[subTitle.FromIndex].Value?.ToString() ?? "",
}); });
} }