Beispiel #1
0
        // 开始具体的调试操作
        public void Execute(bool containsHeader)
        {
            Range topLeftCell = null;
            var   slopes      = GetSlopes(containsHeader, ref topLeftCell);

            if (slopes != null && slopes.Count > 0)
            {
                // 1、对横断面数据进行排序
                slopes.Sort(Comparison);

                // 2、 求分段的面积
                var segs = GetArea(slopes);
                // 4、将结果写回 Excel
                var slopesArr = SegmentData <float, double> .ConvertToArr(segs);

                var mileArr    = segs.Select(r => $"K{Math.Floor(r.Start / 1000)}+{(r.Start % 1000).ToString("000")}~K{Math.Floor(r.End / 1000)}+{(r.End % 1000).ToString("000")}").ToArray();
                var lengthArr  = segs.Select(r => (r.End - r.Start).ToString()).ToArray();
                var lengthArr2 = segs.Select(r => "长度" + (r.End - r.Start).ToString()).ToArray();
                //
                slopesArr = slopesArr.InsertVector <object, object, string>(false, new[] { mileArr, lengthArr },
                                                                            new [] { 1f, 1.1f });

                var sht = _excelApp.ActiveSheet;
                RangeValueConverter.FillRange(sht, topLeftCell.Row, topLeftCell.Column + 3, slopesArr, false);
            }
        }