private void MakeBaseData() { BaseTable = CGetTableType.GtMassData(); ///전체 pipe Data가 들어있음 foreach (CPipeData item in PipeMngr.Data) { InsertManhole(item.Data1); int nPipeCnt = item.Data1.Rows.Count; foreach (DataRow pipeRow in item.Data1.Rows) { CMassData massData = MassMngr.Data.Find(x => x.SheetName == item.SheetName); if (massData == null) { continue; } //string strSearch = string.Format("{0}='{1}'", "지반고", pipeRow["지반고"]); //DataRow[] searchRow = massData.Data.Select(strSearch); nPipeCnt += -1; // massData.Rows[nPipeCnt]; //LINENAME NO 지반고 관저고 계획고 육상(토사) 육상(풍화암) 육상(연암) 수중(토사) 수중(풍화암) 수중(연암) 관상부 //관주위 ASP CONC 덧씌우기 보도블럭 모래부설 보조기층 동상방지층 구간 DataRow dr = BaseTable.NewRow(); dr["LINE"] = item.SheetName; string sfilter = pipeRow["맨홀"].ToString().Substring(0, 3); if (sfilter == "M1-" || sfilter == "M2-" || sfilter == "M3-" || sfilter == "M4-" || sfilter == "E1-" || sfilter == "E2-" || sfilter == "E3-" || sfilter == "E4-") { dr["LINENAME"] = pipeRow["맨홀"].ToString().Remove(0, 3); } else { dr["LINENAME"] = pipeRow["맨홀"]; } dr["누가거리"] = pipeRow["누가거리"]; dr["NO"] = massData.Data.Rows[nPipeCnt]["NO"]; dr["지반고"] = massData.Data.Rows[nPipeCnt]["지반고"]; dr["관저고"] = massData.Data.Rows[nPipeCnt]["관저고"]; dr["계획고"] = massData.Data.Rows[nPipeCnt]["계획고"]; dr["육상(토사)"] = massData.Data.Rows[nPipeCnt]["육상(토사)"]; dr["육상(풍화암)"] = massData.Data.Rows[nPipeCnt]["육상(풍화암)"]; dr["육상(연암)"] = massData.Data.Rows[nPipeCnt]["육상(연암)"]; dr["수중(토사)"] = massData.Data.Rows[nPipeCnt]["수중(토사)"]; dr["수중(풍화암)"] = massData.Data.Rows[nPipeCnt]["수중(풍화암)"]; dr["수중(연암)"] = massData.Data.Rows[nPipeCnt]["수중(연암)"]; dr["관상부"] = massData.Data.Rows[nPipeCnt]["관상부"]; dr["관주위"] = massData.Data.Rows[nPipeCnt]["관주위"]; dr["ASP"] = massData.Data.Rows[nPipeCnt]["ASP"]; dr["CONC"] = massData.Data.Rows[nPipeCnt]["CONC"]; dr["덧씌우기"] = massData.Data.Rows[nPipeCnt]["덧씌우기"]; dr["보도블럭"] = massData.Data.Rows[nPipeCnt]["보도블럭"]; dr["모래부설"] = massData.Data.Rows[nPipeCnt]["모래부설"]; dr["보조기층"] = massData.Data.Rows[nPipeCnt]["보조기층"]; dr["동상방지층"] = massData.Data.Rows[nPipeCnt]["동상방지층"]; dr["구간"] = pipeRow["구간"]; dr["관경"] = pipeRow["관경"]; dr["맨홀규격"] = pipeRow["맨홀규격"]; dr["굴착공법"] = pipeRow["굴착공법"]; dr["Column3"] = pipeRow["Column3"]; dr["포장종류"] = pipeRow["포장종류"]; BaseTable.Rows.Add(dr); } } }
private void simpleButton4_Click(object sender, EventArgs e) { string filename = ""; splashScreenManager1.SplashFormStartPosition = DevExpress.XtraSplashScreen.SplashFormStartPosition.Default; try { filename = CUtil.LoadExcel(spread3); IWorkbook workbook = spread3.Document; splashScreenManager1.ShowWaitForm(); foreach (Worksheet item in workbook.Worksheets) { int nRow = item.GetUsedRange().RowCount; IEnumerable <Cell> searchResult = ExcelDataSourceExtension.FindCell(item, "NO"); string strPos2; string strPos1; string strPos3; foreach (Cell cell in searchResult) { if (cell.ColumnIndex != 1) { continue; } CMassData Data = new CMassData(); Data.SheetName = item.Name; string strPos; strPos1 = string.Format("{0}{1}:{2}{3}", "B", 1, "T", nRow); Data.Data = ExcelDataSourceExtension.ExcelToDataSource(filename, item, strPos1); /* * 토적 데이터가 측점으로 정렬이 안 되어 있음 */ if (Data.SheetName == "DE") { string aaa = "aaaa"; } DataTable sortTable = 토적정렬(Data.Data); Data.Data = sortTable; MassMngr.Add(Data); } } int nCnt = MassMngr.Data.Count; MakeBaseData(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { splashScreenManager1.CloseWaitForm(); } }