public ExcelMapData get_row_data(ExcelMapData src_map, CellValue[] v_row_data, int v_optCode) { ExcelMapData rtn; if (src_map == null) { rtn = new ExcelMapData(); } else { rtn = src_map; } Serchdata serch_root = new Serchdata(this, rtn); _get_row_data(serch_root, v_row_data, v_optCode); return(rtn); }
private void _get_row_data(Serchdata v_st, CellValue[] v_row_data, int v_optCode) { ExcelMapData curmap = v_st.curmap; ComplexExcelHeaderNode parrent = v_st.node; List <KeyValue <ComplexExcelHeaderNode> > keyValSet = v_st.node.getKeyValueSet(); for (int i = 0; i < keyValSet.Count; i++) { Key the_key = keyValSet[i].key; ComplexExcelHeaderNode node = parrent.get_node(the_key); if (node.IsSkip) { continue; } if (node.IsLeaf) { ExcelHeaderDecorate ehd = m_header_dct[node.LeafDataIdx]; if (!ehd.is_need_opt(v_optCode)) { continue; } CellValue celldata = v_row_data[node.LeafDataIdx]; if (!celldata._isMiss) { ExcelMapData leafData = new ExcelMapData(); leafData.initAsLeafeData(celldata); leafData.Type = EExcelMapDataType.cellData; curmap.addData(the_key, leafData); } } else { ExcelMapData map_next = new ExcelMapData(); map_next.initAsTableData(); map_next.Type = EExcelMapDataType.cellTable; Serchdata sdnew = new Serchdata(node, map_next); _get_row_data(sdnew, v_row_data, v_optCode); if (!map_next.IsEmpty()) { curmap.addData(the_key, map_next); } } } }