diff --git a/README.md b/README.md
index 830f745..198d08c 100644
--- a/README.md
+++ b/README.md
@@ -99,7 +99,7 @@ luban相较于常规的excel导表工具有以下核心优势:
- 其他所有支持js的引擎和平台
- 扩展工具
- Excel2TextDiff。将excel转成文本后再diff,清晰对比excel版本之间内容变化。
- - **[开发中,马上...]LubanAssistant**,Luban的Excel插件。支持把json、lua、xml等文本格式的配置数据加载到excel中,批量编辑处理,最后再保存回原文件,较好地解决大型项目中多人合作数据编辑冲突合并的问题,较好解决在编辑器中制作的配置难以在excel中批量修改的问题。
+ - **LubanAssistant**,Luban的Excel插件。支持把json、lua、xml等文本格式的配置数据加载到excel中,批量编辑处理,最后再保存回原文件,较好地解决大型项目中多人合作数据编辑冲突合并的问题,较好解决在编辑器中制作的配置难以在excel中批量修改的问题。
## 增强的excel格式
diff --git a/src/Luban.Job.Cfg/Source/DataCreators/ExcelDataCreator.cs b/src/Luban.Job.Cfg/Source/DataCreators/ExcelDataCreator.cs
index 7868a46..02bb9be 100644
--- a/src/Luban.Job.Cfg/Source/DataCreators/ExcelDataCreator.cs
+++ b/src/Luban.Job.Cfg/Source/DataCreators/ExcelDataCreator.cs
@@ -333,7 +333,7 @@ namespace Luban.Job.Cfg.DataCreators
{
return null;
}
- if (CheckIsDefault(type.IsNullable, d) && field?.DefalutDtypeValue != null)
+ if (CheckIsDefault(x.NamedMode, d) && field?.DefalutDtypeValue != null)
{
return field?.DefalutDtypeValue;
}
@@ -346,7 +346,12 @@ namespace Luban.Job.Cfg.DataCreators
{
throw new InvalidExcelDataException("excel string类型在标题头对应模式下必须正好占据一个单元格");
}
- var s = ParseString(x.Read(x.NamedMode));
+ var d = x.Read(x.NamedMode);
+ if (CheckIsDefault(x.NamedMode, d) && field?.DefalutDtypeValue != null)
+ {
+ return field.DefalutDtypeValue;
+ }
+ var s = ParseString(d);
if (s == null)
{
if (type.IsNullable)
diff --git a/src/Luban.Job.Cfg/Source/DataCreators/ExcelNamedRowDataCreator.cs b/src/Luban.Job.Cfg/Source/DataCreators/ExcelNamedRowDataCreator.cs
index 5bbb751..440e170 100644
--- a/src/Luban.Job.Cfg/Source/DataCreators/ExcelNamedRowDataCreator.cs
+++ b/src/Luban.Job.Cfg/Source/DataCreators/ExcelNamedRowDataCreator.cs
@@ -151,7 +151,7 @@ namespace Luban.Job.Cfg.DataCreators
}
else
{
- list.Add(f.CType.Apply(ExcelDataCreator.Ins, null, row.GetMultiRowStream(f.Name, sep, f.IsRowOrient), (DefAssembly)bean.AssemblyBase));
+ list.Add(f.CType.Apply(ExcelDataCreator.Ins, f, row.GetMultiRowStream(f.Name, sep, f.IsRowOrient), (DefAssembly)bean.AssemblyBase));
}
}
catch (DataCreateException dce)
diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs
index 4c34a28..6d38dda 100644
--- a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs
+++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs
@@ -18,7 +18,19 @@ namespace Luban.Job.Cfg.DataSources.Excel
private System.Text.Encoding DetectCsvEncoding(Stream fs)
{
- return System.Text.Encoding.Default;
+ Ude.CharsetDetector cdet = new Ude.CharsetDetector();
+ cdet.Feed(fs);
+ cdet.DataEnd();
+ fs.Seek(0, SeekOrigin.Begin);
+ if (cdet.Charset != null)
+ {
+ s_logger.Debug("Charset: {}, confidence: {}", cdet.Charset, cdet.Confidence);
+ return System.Text.Encoding.GetEncoding(cdet.Charset) ?? System.Text.Encoding.Default;
+ }
+ else
+ {
+ return System.Text.Encoding.Default;
+ }
}
public override void Load(string rawUrl, string sheetName, Stream stream)
diff --git a/src/Luban.Job.Common/Luban.Job.Common.csproj b/src/Luban.Job.Common/Luban.Job.Common.csproj
index afca7bf..1dbcf1a 100644
--- a/src/Luban.Job.Common/Luban.Job.Common.csproj
+++ b/src/Luban.Job.Common/Luban.Job.Common.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/LubanAssistant/LubanAssistant.csproj b/src/LubanAssistant/LubanAssistant.csproj
index 7e7ebb7..50886c5 100644
--- a/src/LubanAssistant/LubanAssistant.csproj
+++ b/src/LubanAssistant/LubanAssistant.csproj
@@ -158,6 +158,9 @@
+
+ ..\packages\Ude.NetStandard.1.2.0\lib\net45\Ude.NetStandard.dll
+
..\packages\YamlDotNet.11.2.1\lib\net45\YamlDotNet.dll
diff --git a/src/LubanAssistant/packages.config b/src/LubanAssistant/packages.config
index 8d15c61..0e2370f 100644
--- a/src/LubanAssistant/packages.config
+++ b/src/LubanAssistant/packages.config
@@ -13,5 +13,6 @@
+
\ No newline at end of file