Пример #1
0
        public bool GetCriterion(MSExcel._Workbook _excelDoc, int sheetIndex, int columnIndex, bool writeCriToData, out string criText, out KVCriterion crit)
        {
            //确定数据的规范
            KVCriterion dataCri = KVCriterion.Null;
            string text = ((MSExcel._Worksheet)_excelDoc.Sheets[sheetIndex]).Name;

            if (text != "标准模板")
            {
                if (text == "统计")
                {
                    text = GetText(_excelDoc, sheetIndex, new ExcelPosition(5, columnIndex));
                    if (text.EndsWith("kV"))
                    {
                        text = text.Replace("kV", "").Trim();
                        switch (text)
                        {
                            case "40":
                                dataCri = KVCriterion.RQR2_40;
                                break;
                            case "50":
                                dataCri = KVCriterion.RQR3_50;
                                break;
                            case "60":
                                dataCri = KVCriterion.RQR4_60;
                                break;
                            case "70":
                                dataCri = KVCriterion.RQR5_70;
                                break;
                            case "80":
                                dataCri = KVCriterion.RQR6_80;
                                break;
                            case "90":
                                dataCri = KVCriterion.RQR7_90;
                                break;
                            case "100":
                                dataCri = KVCriterion.RQR8_100;
                                break;
                            case "120":
                                dataCri = KVCriterion.RQR9_120;
                                break;
                            case "140":
                                dataCri = KVCriterion.RQR_140;
                                break;
                            case "150":
                                dataCri = KVCriterion.RQR10_150;
                                break;
                        }
                    }
                }
                else
                {
                    text = GetText(_excelDoc, sheetIndex, new ExcelPosition(13, columnIndex));
                    if (text.Contains("140"))
                    {
                        dataCri = KVCriterion.RQR_140;
                    }
                    else
                    {
                        if (text.Contains("kV"))
                        {
                            string text1 = text.Split(new string[] { "kV" }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();
                            if (text1.Contains("."))
                            {
                                text1 = text1.Substring(0, text1.LastIndexOf('.'));
                            }
                            int charindex = -1;
                            for (int i = 0; i < text1.Length; i++)
                            {
                                if (!DataUtility.DataUtility.IsCharNumber(text1[i]))
                                {
                                    charindex = i;
                                }
                            }
                            if (charindex > -1)
                            {
                                text1 = text1.Substring(charindex + 1);
                            }
                            //GetText(_excelDoc, sheetIndex, DataUtility.DataUtility.PositionString(14, columnIndex), out checkClear);
                            switch (text1)
                            {
                                case "40":
                                    dataCri = KVCriterion.RQR2_40;
                                    break;
                                case "50":
                                    dataCri = KVCriterion.RQR3_50;
                                    break;
                                case "60":
                                    dataCri = KVCriterion.RQR4_60;
                                    break;
                                case "70":
                                    dataCri = KVCriterion.RQR5_70;
                                    break;
                                case "80":
                                    dataCri = KVCriterion.RQR6_80;
                                    break;
                                case "90":
                                    dataCri = KVCriterion.RQR7_90;
                                    break;
                                case "100":
                                    dataCri = KVCriterion.RQR8_100;
                                    break;
                                case "120":
                                    dataCri = KVCriterion.RQR9_120;
                                    break;
                                case "140":
                                    dataCri = KVCriterion.RQR_140;
                                    break;
                                case "150":
                                    dataCri = KVCriterion.RQR10_150;
                                    break;
                            }
                        }
                        else
                        {
                            LogHelper.AddException("无法识别的规范", true);
                        }
                    }
                }
            }

            criText = text;
            crit = dataCri;
            if (crit != KVCriterion.Null)
            {
                if (writeCriToData)
                {
                    WriteCriterionToData(_excelDoc, sheetIndex, crit, columnIndex);
                }
                return true;
            }
            else
            {
                return false;
            }
        }
Пример #2
0
        public void WriteCriterionToData(MSExcel._Workbook _excelDoc, int sheetIndex, KVCriterion cri, int columnIndex)
        {
            string volText = cri.Voltage;
            string ppvText = cri.PPV;

            if (ppvText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(14, columnIndex), ppvText);
            }
        }
Пример #3
0
 /// <summary>
 /// 计算长期稳定性
 /// </summary>
 /// <param name="sheetIndex"></param>
 /// <param name="row"></param>
 /// <param name="col"></param>
 /// <param name="range"></param>
 /// <param name="success"></param>
 public void StablizeOneKV(MSExcel._Workbook _excelDoc, int sheetIndex, KVCriterion crit, int row, int col, out string range, out bool success)
 {
     try
     {
         ExcelPosition pos1 = new ExcelPosition(row - 1, col - 2);
         ExcelPosition pos2 = new ExcelPosition(row, col - 2);
         ExcelPosition pos = new ExcelPosition(row, col);
         MSExcel.Range _excelRge = GetRange(_excelDoc, sheetIndex, pos);
         if (HadNumber(_excelDoc, sheetIndex, pos2) && HadNumber(_excelDoc, sheetIndex, pos1))
         {
             if (crit.Index > 2)
             {
                 _excelRge.Formula = "=(" + pos2.PositionString + "-" + pos1.PositionString + ")/" + pos1.PositionString;
             }
             else
             {
                 _excelRge.Formula = "=" + pos1.PositionString + "-" + pos2.PositionString;
             }
             _excelRge.NumberFormatLocal = "0.0%";
             _excelDoc.Save();
         }
         if (_excelRge != null && _excelRge.Value2 != null)
         {
             range = _excelRge.Value2.ToString();
         }
         else
         {
             range = GetText(_excelDoc, sheetIndex, pos);
         }
         success = true;
     }
     catch (System.Exception ex)
     {
         success = false;
         range = null;
         Log.LogHelper.AddLog(@"异常45", ex.Message, true);
         Log.LogHelper.AddLog(@"异常46", "  " + ex.TargetSite.ToString(), true);
     }
 }
Пример #4
0
        public void WriteCriterionToStatistic(MSExcel._Workbook _excelDoc, int sheetIndex, KVCriterion cri, int columnIndex)
        {
            string volText = "";
            string halfLayerText = "";
            string title2 = @"相对固有误差";

            switch (cri.Voltage)
            {
                case "40kV":
                    title2 = @"固有误差";
                    volText = @"40kV";
                    halfLayerText = @"1.42";
                    break;
                case "50kV":
                    title2 = @"固有误差";
                    volText = @"50kV";
                    halfLayerText = @"1.78";
                    break;
                case "60kV":
                    volText = @"60kV";
                    halfLayerText = @"2.19";
                    break;
                case "70kV":
                    volText = @"70kV";
                    halfLayerText = @"2.58";
                    break;
                case "80kV":
                    volText = @"80kV";
                    halfLayerText = @"3.01";
                    break;
                case "90kV":
                    volText = @"90kV";
                    halfLayerText = @"3.48";
                    break;
                case "100kV":
                    volText = @"100kV";
                    halfLayerText = @"3.97";
                    break;
                case "120kV":
                    volText = @"120kV";
                    halfLayerText = @"5.00";
                    break;
                case "140kV":
                    volText = @"140kV";
                    halfLayerText = "";
                    break;
                case "150kV":
                    volText = @"150kV";
                    halfLayerText = @"6.57";
                    break;
                default:
                    LogHelper.AddException("在统计页写入第" + columnIndex + "列的数据时遇到无法识别的规范:" + cri.Voltage, true);
                    break;
            }
            if (volText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(5, columnIndex), volText);
            }
            if (halfLayerText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(6, columnIndex), halfLayerText);
            }
            WriteValue(_excelDoc, sheetIndex, new ExcelPosition(7, columnIndex), @"平均值");
            WriteValue(_excelDoc, sheetIndex, new ExcelPosition(7, columnIndex + 1), title2);
            WriteValue(_excelDoc, sheetIndex, new ExcelPosition(7, columnIndex + 2), @"年稳定性");
        }