private void ConvertSheet(IWorksheet xlSheet, IWorkbook xlBookDB)
        {
            Dictionary <IRange, string[][]> dicS = ExtractDataSheet(xlSheet);
            IWorksheet newSheet = xlSheet.CopyAfter(xlSheet) as IWorksheet;

            newSheet.Name = xlSheet.Name + "_DB";
            OutputDataToSheet(newSheet, dicS, xlBookDB);
        }
Ejemplo n.º 2
0
        private async void CreateTranslateSheet(IWorksheet xlSheet)
        {
            List <IRange> arRange  = ExtractTranslateDataSheet(xlSheet);
            IWorksheet    newSheet = xlSheet.CopyAfter(xlSheet) as IWorksheet;

            newSheet.Name = xlSheet.Name + "_EN";
            await TranslateSheet(newSheet, arRange);
        }
        private async Task <int> CreateTranslateSheet2(IWorksheet xlSheet, int numPrevRequest)
        {
            List <IRange> arRange  = ExtractTranslateDataSheet2(xlSheet);
            IWorksheet    newSheet = xlSheet.CopyAfter(xlSheet) as IWorksheet;

            newSheet.Name = xlSheet.Name + "_EN";
            int i = await TranslateSheet2(newSheet, arRange, numPrevRequest);

            return(i);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path">生成的文件路径</param>
        /// <param name="chips">源数据</param>
        public static bool Analysize(string path, Chip[] chips)
        {
            bool       result    = false;
            FileStream fs_create = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);

            try
            {
                //1.获取有多少个chip
                var count          = from i in chips select i[1]; //选取所有的chipID
                var count_distinct = count.Distinct().ToArray();  //对chipID去重,结果是数组。
                //2.通过文件流来创建workbook,注意最后要关闭。

                IWorkbook  workbook  = Factory.GetWorkbook();
                IWorksheet worksheet = (IWorksheet)workbook.Sheets[0];
                for (int i = 0; i < count_distinct.Length; i++)
                {
                    if (i == 0)
                    {
                        worksheet.Name = count_distinct[0];
                    }
                    else
                    {
                        IWorksheet next_worksheet = (IWorksheet)worksheet.CopyAfter(worksheet);
                        next_worksheet.Name = count_distinct[i];
                    }
                    IWorksheet currentworksheet = workbook.Worksheets[count_distinct[i]];
                    //分析数据
                    //1.搜索chipID为count_distinct[i]的所有chip对象。
                    var chip_group = from j in chips where j[1] == count_distinct[i] select j;
                    //2.对同一个chipID的所有chip对象进行分析。
                    var TemperatureMeasureds = (from j in chip_group select j[8]).ToArray();
                    //3.取最大温度量测值和最小温度量测值做比较
                    double[] temperatures = new double[TemperatureMeasureds.Length];
                    for (int k = 0; k < TemperatureMeasureds.Length; k++)
                    {
                        temperatures[k] = Convert.ToDouble(TemperatureMeasureds[k]);
                    }
                    double maxvalue = Enumerable.Max(temperatures);
                    double minvalue = Enumerable.Min(temperatures);
                    //4.搜索最大温度值的芯片与最小温度值的芯片:
                    var Max_chip = (from j in chip_group where Convert.ToDouble(j[8]) == maxvalue select j).ToArray()[0];
                    var Min_chip = (from j in chip_group where Convert.ToDouble(j[8]) == minvalue select j).ToArray()[0];
                    //得出需要的数据:
                    //Gain Resistance   14 L
                    //Imod_90mA  38 L
                    //Ith_Imod  17 L
                    //Pout_90mA 42 两个,一个高一个低 H L
                    //Reflection3rd Distance 23 L
                    //SMSR_90mA  57 L
                    //Vgain_90mA 34 L
                    //WVL_90mA 50 H L
                    IWorksheet current_worksheet = workbook.Worksheets[i];
                    current_worksheet.Cells["A1"].Value = "GAINR_L";
                    current_worksheet.Cells["B1"].Value = "Gain Resistance (Ohm)";
                    current_worksheet.Cells["C1"].Value = Min_chip[14];

                    current_worksheet.Cells["A2"].Value = "IMOD_90MA_L";
                    current_worksheet.Cells["B2"].Value = "Imod_90mA (mA)";
                    current_worksheet.Cells["C2"].Value = Min_chip[38];


                    current_worksheet.Cells["A3"].Value = "ITH_L";
                    current_worksheet.Cells["B3"].Value = "Ith_Imod (mA)";
                    current_worksheet.Cells["C3"].Value = Min_chip[17];

                    current_worksheet.Cells["A4"].Value = "POUT_90MA_H";
                    current_worksheet.Cells["B4"].Value = "Pout_90mA (mW)";
                    current_worksheet.Cells["C4"].Value = Max_chip[42];

                    current_worksheet.Cells["A5"].Value = "POUT_90MA_L";
                    current_worksheet.Cells["B5"].Value = "Pout_90mA (mW)";
                    current_worksheet.Cells["C5"].Value = Min_chip[42];

                    current_worksheet.Cells["A6"].Value = "REFCECTLON_D3_L";
                    current_worksheet.Cells["B6"].Value = "Reflection3rd Distance (K/A^3)";
                    current_worksheet.Cells["C6"].Value = Min_chip[23];

                    current_worksheet.Cells["A7"].Value = "SMSR_90MA_L";
                    current_worksheet.Cells["B7"].Value = "SMSR_90mA (dB)";
                    current_worksheet.Cells["C7"].Value = Min_chip[57];

                    current_worksheet.Cells["A8"].Value = "VGAIN_90MA_L";
                    current_worksheet.Cells["B8"].Value = Chip.properties[34];
                    current_worksheet.Cells["C8"].Value = Min_chip[34];

                    current_worksheet.Cells["A9"].Value = "WL_90MA_H";
                    current_worksheet.Cells["B9"].Value = Chip.properties[50];
                    current_worksheet.Cells["C9"].Value = Max_chip[50];

                    current_worksheet.Cells["A10"].Value = "WL_90MA_L";
                    current_worksheet.Cells["B10"].Value = Chip.properties[50];
                    current_worksheet.Cells["C10"].Value = Min_chip[50];
                }
                workbook.SaveToStream(fs_create, FileFormat.Excel8);

                result = true;
            }
            catch (Exception e)
            {
                ExDictionary dic = new ExDictionary();
                dic["msg"]      = "异常:" + e.Message + "\r\n异常出现的地方:" + e.StackTrace;
                dic["color"]    = Color.Red;
                dic["nextline"] = true;
                Notification.GetInstance().PostNotification("log", dic);
                result = false;
            }
            finally
            {
                fs_create.Close();
            }
            return(result);
        }