Files
MsAddIns/ExportExcelTest/Models/PrimaryItem.cs

81 lines
1.9 KiB
C#
Raw Normal View History

2026-02-28 21:01:57 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CustomOpenAddins.Models
{
public class BaseItem
{
public BaseItem(string name)
{
Name = name;
}
public string Name { get; }
}
/// <summary>
/// 一级开项
/// </summary>
public class PrimaryItem : BaseItem
{
public PrimaryItem(string name, SheetTable table) : base(name)
{
Table = table;
SubCategories = new HashSet<SubItem>();
}
/// <summary>
/// 表名
/// </summary>
public SheetTable Table { get; set; }
public SubItem this[int index]
{
get => SubCategories.ElementAt(index);
}
public override string ToString()
{
StringBuilder sb = new StringBuilder($"<主项>{Name};");
if (SubCategories.Count == 0)
{
return sb.Append("无;").ToString();
}
foreach (var item in SubCategories)
{
sb.AppendLine($"{item}");
}
return sb.ToString();
}
/// <summary>
/// 子类项目
/// </summary>
public HashSet<SubItem> SubCategories { get; private set; }
public SubItem AddSub(string subName)
{
var sub = new SubItem(subName, this);
if (SubCategories == null)
{
SubCategories = new HashSet<SubItem>();
}
SubCategories.Add(sub);
return sub;
}
public void AddSubCategories(List<SubItem> subs)
{
if (SubCategories == null)
{
SubCategories = new HashSet<SubItem>();
}
subs.ForEach(x =>
{
x.Primary = this;
SubCategories.Add(x);
});
}
}
}