Beispiel #1
0
        /// <summary>
        /// 解析 sheet 層的設定
        /// </summary>
        /// <param name="partNode">子項目名稱</param>
        private List <TrInfo> readContextInfo(XmlNode partNode)
        {
            List <TrInfo> trInfoList = new List <TrInfo>();

            // 未設定時返回
            if (partNode == null)
            {
                return(trInfoList);
            }

            // 取得 tr node list
            XmlNodeList trNodeList = partNode.SelectNodes(Constant.ELEMENT_TR);

            // 未設定時返回
            if (trNodeList == null || trNodeList.Count == 0)
            {
                return(trInfoList);
            }

            foreach (XmlNode trNode in trNodeList)
            {
                TrInfo trInfo = new TrInfo();
                // 讀取 style 屬性設定
                trInfo.readStyleAttr(trNode);
                // 取得 TD 設定 list 設定
                XmlNodeList tdNodeList = trNode.SelectNodes(Constant.ELEMENT_TD);
                // 檢核
                if (tdNodeList == null || tdNodeList.Count == 0)
                {
                    throw new ExcelOperateException("<tr> 標籤下, 不可無 <td> 設定!");
                }

                // 取得TD 設定
                List <TdInfo> tdInfoList = new List <TdInfo>();
                foreach (XmlNode tdNode in tdNodeList)
                {
                    TdInfo tdInfo = new TdInfo();

                    // 讀取rowspan 屬性 (TdInfo 獨有)
                    if (tdNode.Attributes != null)
                    {
                        tdInfo.Rowspan = Convert.ToInt32(ExcelStringUtil.GetNodeAttr(tdNode, Constant.ATTRIBUTE_ROWSPAN, "0"));
                    }

                    // 讀取資料元素設定
                    tdInfo.readDataColumnAttr(tdNode);

                    // 讀取 style 屬性設定
                    tdInfo.readStyleAttr(tdNode);

                    tdInfoList.Add(tdInfo);
                }
                trInfo.TdInfoList = tdInfoList;
                trInfoList.Add(trInfo);
            }

            return(trInfoList);
        }