【重构】重构excel格式后相应调整了convert_xlsx的生成

main
walon 2021-10-27 15:09:24 +08:00
parent cd227c3f4c
commit 72cf2884d9
3 changed files with 46 additions and 19 deletions

View File

@ -266,14 +266,14 @@ namespace Luban.Job.Cfg.DataConverts
public int Accept(DVector3 type, Title x) public int Accept(DVector3 type, Title x)
{ {
var v = type.Value; var v = type.Value;
SetTitleValue(x, $"{v.X}, {v.Y}, {v.Z}"); SetTitleValue(x, $"{v.X},{v.Y},{v.Z}");
return 1; return 1;
} }
public int Accept(DVector4 type, Title x) public int Accept(DVector4 type, Title x)
{ {
var v = type.Value; var v = type.Value;
SetTitleValue(x, $"{v.X}, {v.Y}, {v.Z}, {v.W}"); SetTitleValue(x, $"{v.X},{v.Y},{v.Z},{v.W}");
return 1; return 1;
} }

View File

@ -64,10 +64,6 @@ namespace Luban.Job.Cfg.DataConverts
{ {
subTitle.Tags.Add("sep", sep); subTitle.Tags.Add("sep", sep);
} }
if (f.CType.Tags.TryGetValue("multi_rows", out var multiRows))
{
subTitle.Tags.Add("multiRows", multiRows);
}
f.CType.Apply(this, subTitle, startColumn); f.CType.Apply(this, subTitle, startColumn);
lastColumn = subTitle.ToIndex; lastColumn = subTitle.ToIndex;

View File

@ -1,6 +1,8 @@
using Luban.Job.Cfg.Cache; using Luban.Job.Cfg.Cache;
using Luban.Job.Cfg.DataConverts; using Luban.Job.Cfg.DataConverts;
using Luban.Job.Cfg.Utils; using Luban.Job.Cfg.Utils;
using Luban.Job.Common.Types;
using Luban.Job.Common.TypeVisitors;
using Luban.Job.Common.Utils; using Luban.Job.Common.Utils;
using SpreadsheetLight; using SpreadsheetLight;
using System; using System;
@ -31,12 +33,12 @@ namespace Luban.Job.Cfg.Generate
var title = TitleCreator.Ins.CreateTitle(table); var title = TitleCreator.Ins.CreateTitle(table);
TBean valueType = table.ValueTType;
var dataRangeArray = new List<object[]>(); var dataRangeArray = new List<object[]>();
{
dataRangeArray.Add(new object[] { "##" });
var titleRow = new object[title.ToIndex + 1]; var titleRow = new object[title.ToIndex + 1];
titleRow[0] = "##";
foreach (var subTitle in title.SubTitleList) foreach (var subTitle in title.SubTitleList)
{ {
@ -44,10 +46,24 @@ namespace Luban.Job.Cfg.Generate
titleRow[subTitle.FromIndex] = titleAndTags; titleRow[subTitle.FromIndex] = titleAndTags;
} }
dataRangeArray.Add(titleRow); dataRangeArray.Add(titleRow);
// 注释行1 }
dataRangeArray.Add(Array.Empty<object>()); {
// 注释行2
dataRangeArray.Add(Array.Empty<object>()); var typeRow = new object[title.ToIndex + 1];
typeRow[0] = "##type";
foreach (var subTitle in title.SubTitleList)
{
string typeAndTags = valueType.Bean.TryGetField(subTitle.Name, out var f, out _) ?
(f.CType.Tags.Count == 0 ? f.CType.Apply(CsDefineTypeName.Ins) : f.CType.Apply(CsDefineTypeName.Ins) + "&" + string.Join('&', f.CType.Tags.Select(e => $"{e.Key}={e.Value}")))
: "";
typeRow[subTitle.FromIndex] = typeAndTags;
}
dataRangeArray.Add(typeRow);
}
dataRangeArray.Add(new object[] { "##" });
int totalRowCount = dataRangeArray.Count; int totalRowCount = dataRangeArray.Count;
foreach (var rec in records) foreach (var rec in records)
@ -109,6 +125,21 @@ namespace Luban.Job.Cfg.Generate
worksheet.SetCellValue(i + 1, j + 1, t); worksheet.SetCellValue(i + 1, j + 1, t);
break; break;
} }
case double t:
{
worksheet.SetCellValue(i + 1, j + 1, t);
break;
}
case long t:
{
worksheet.SetCellValue(i + 1, j + 1, t);
break;
}
case short t:
{
worksheet.SetCellValue(i + 1, j + 1, t);
break;
}
case bool t: case bool t:
{ {
worksheet.SetCellValue(i + 1, j + 1, t); worksheet.SetCellValue(i + 1, j + 1, t);