zoukankan      html  css  js  c++  java
  • C# 根据Excel生成树

    需求:

      根据Excel生成树,Excel的某些节点为属性节点,

      如: 列(桩号、构件编码、测试属性1) 是列(分项工程名称) 的属性,非节点。

      列(桩号、构件编码、测试属性1) 以属性的方式存在

    导入的思路:

      排除属性列外,所有的列从左到右,树的层级依次递增,左边列是右边列的父节点

      判断一个单元格是否已添加,获取该单元格的所有父节点的名称,拼接成字符串。

        如:鸡鸣隧道  的全名就是  城开高速公路,B2合同段,鸡鸣隧道

    效率的优化:

        

      1、导入第二行(或后面行)的时候,判断和第一行是否有相同的节点,有就跳过相同节点,从不同的节点处开始导入。

       2、在效率低下的方法处 加上缓存

       3、导入A1合同段,就只加载A1合同段,这颗树的全部节点

    树的一二级节点固定的

    树的类:

        public class tb_Projects
        {
           
            public int ProID { get; set; }        
            public string ProjectName { get; set; }
            /// <summary>
            /// 编码
            /// </summary>
            public string ProjectCode { get; set; }
           
    
            public int ParentId { get; set; }
            public int? NextId { get; set; }
            public int? ProjectOrder { get; set; }
    
            public int IsEnabled { get; set; }
            /// <summary>
            /// 业主单位id
            /// </summary>
            public int? OwnerId { get; set; }
            /// <summary>
            /// 施工单位ID
            /// </summary>
            public int? ConstructionId { get; set; }
            /// <summary>
            /// 监理单位id
            /// </summary>
            public int? SupervisionId { get; set; }
            /// <summary>
            /// 承包单位id
            /// </summary>
            public int? ContractId { get; set; }
    
            /// <summary>
            /// 第几级(即在树层次中第几级,根元素级次为1,以此类推)
            /// </summary>
            public int? Level { get; set; }
            /// <summary>
            /// 数量
            /// </summary>
            public int? Quantity { get; set; }
    
    
            public int VersionIng { get; set; }
    
            /// <summary>
            /// 里程桩号
            /// </summary>
            public string MileageNo { get; set; }
            /// <summary>
            /// 标准编码
            /// </summary>
            public string ComponentCode { get; set; }
    
            /// <summary>
            /// 内部编码
            /// </summary>
            public string NComponentCode { get; set; }
    
            /// <summary>
            /// 流程状态
            /// </summary>
            public int TaskStatus { get; set; }
    
            
    
            public string FbxId { get; set; }
            /// <summary>
            /// 判断是否为单位工程
            /// </summary>
            public int IsSubunit { get; set; }
            /// <summary>
            /// 所属标段
            /// </summary>
            public string BiDSion { get; set; }
        }
    View Code

    Excel格式:

    生成的树:

    数据库:

  • 相关阅读:
    [bzoj4417] [洛谷P3990] [Shoi2013] 超级跳马
    [bzoj4011] [洛谷P3244] [HNOI2015] 落忆枫音
    [bzoj1875] [洛谷P2151] [SDOI2009] HH去散步
    [bzoj4827] [洛谷P3723] [Hnoi2017] 礼物
    [bzoj2326] [洛谷P3216] [HNOI2011] 数学作业
    [bzoj3105] [cqoi2013] 新Nim游戏
    [YTU]_2353 ( 长方柱类【C++ 类定义】)
    [YTU]_2627 (职工工资统计)
    [YTU]_2769( 结构体--成绩统计)
    [YTU]_2577( 小数计算——结构体)
  • 原文地址:https://www.cnblogs.com/guxingy/p/10103547.html
Copyright © 2011-2022 走看看