【重构】重构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)
{
var v = type.Value;
SetTitleValue(x, $"{v.X}, {v.Y}, {v.Z}");
SetTitleValue(x, $"{v.X},{v.Y},{v.Z}");
return 1;
}
public int Accept(DVector4 type, Title x)
{
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;
}

View File

@ -64,10 +64,6 @@ namespace Luban.Job.Cfg.DataConverts
{
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);
lastColumn = subTitle.ToIndex;

View File

@ -1,6 +1,8 @@
using Luban.Job.Cfg.Cache;
using Luban.Job.Cfg.DataConverts;
using Luban.Job.Cfg.Utils;
using Luban.Job.Common.Types;
using Luban.Job.Common.TypeVisitors;
using Luban.Job.Common.Utils;
using SpreadsheetLight;
using System;
@ -31,24 +33,38 @@ namespace Luban.Job.Cfg.Generate
var title = TitleCreator.Ins.CreateTitle(table);
TBean valueType = table.ValueTType;
var dataRangeArray = new List<object[]>();
{
var titleRow = new object[title.ToIndex + 1];
titleRow[0] = "##";
foreach (var subTitle in title.SubTitleList)
{
string titleAndTags = subTitle.Tags.Count == 0 ? subTitle.Name : subTitle.Name + "&" + string.Join('&', subTitle.Tags.Select(e => $"{e.Key}={e.Value}"));
titleRow[subTitle.FromIndex] = titleAndTags;
}
dataRangeArray.Add(titleRow);
}
{
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[] { "##" });
var titleRow = new object[title.ToIndex + 1];
foreach (var subTitle in title.SubTitleList)
{
string titleAndTags = subTitle.Tags.Count == 0 ? subTitle.Name : subTitle.Name + "&" + string.Join('&', subTitle.Tags.Select(e => $"{e.Key}={e.Value}"));
titleRow[subTitle.FromIndex] = titleAndTags;
}
dataRangeArray.Add(titleRow);
// 注释行1
dataRangeArray.Add(Array.Empty<object>());
// 注释行2
dataRangeArray.Add(Array.Empty<object>());
int totalRowCount = dataRangeArray.Count;
foreach (var rec in records)
{
@ -109,6 +125,21 @@ namespace Luban.Job.Cfg.Generate
worksheet.SetCellValue(i + 1, j + 1, t);
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:
{
worksheet.SetCellValue(i + 1, j + 1, t);