【优化】优化excel中多级标题头时#desc的解析处理

main
walon 2021-10-29 14:24:27 +08:00
parent d1d28a0692
commit 6e994e7729
2 changed files with 29 additions and 3 deletions

View File

@ -437,12 +437,39 @@ namespace Luban.Job.Cfg.DataSources.Excel
{ {
continue; continue;
} }
string desc = "";
if (descRow != null)
{
// 如果有子字段,并且子字段个数>=2时,如果对应注释行有效注释个数为1表示这是给当前字段的注释,
// 否则是给子字段的注释,取注释为空,而不是第一个注释
if (subTitle.SubTitles.Count >= 2)
{
int notEmptyCellCount = 0;
for (int i = subTitle.FromIndex; i <= subTitle.ToIndex; i++)
{
var cellValue = descRow?[i].Value?.ToString();
if (!string.IsNullOrWhiteSpace(cellValue))
{
++notEmptyCellCount;
desc = cellValue;
}
}
if (notEmptyCellCount > 1)
{
desc = "";
}
}
else
{
desc = descRow?[subTitle.FromIndex].Value?.ToString() ?? "";
}
}
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[subTitle.FromIndex].Value?.ToString() ?? "", Type = typeRow[subTitle.FromIndex].Value?.ToString() ?? "",
Desc = descRow?[subTitle.FromIndex].Value?.ToString() ?? "", Desc = desc,
}); });
} }

View File

@ -159,7 +159,6 @@ namespace Luban.Job.Common.Utils
public static string EscapeCommentByCurrentLanguage(string comment) public static string EscapeCommentByCurrentLanguage(string comment)
{ {
//comment = comment.Replace('\n', ' ').Replace('\r', ' ');
var curLan = DefAssemblyBase.LocalAssebmly.CurrentLanguage; var curLan = DefAssemblyBase.LocalAssebmly.CurrentLanguage;
switch (curLan) switch (curLan)
{ {
@ -172,7 +171,7 @@ namespace Luban.Job.Common.Utils
case ELanguage.JS: case ELanguage.JS:
case ELanguage.TYPESCRIPT: case ELanguage.TYPESCRIPT:
case ELanguage.PYTHON: case ELanguage.PYTHON:
case ELanguage.RUST: return WebUtility.HtmlDecode(comment).Replace("\n", "<br/>"); case ELanguage.RUST: return System.Web.HttpUtility.HtmlEncode(comment).Replace("\n", "<br/>");
default: throw new Exception($"unknown language:{curLan}"); default: throw new Exception($"unknown language:{curLan}");
} }
} }