コード例 #1
0
        private void btnAImport_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
        {
            try
            {
                System.Windows.Forms.OpenFileDialog OFD = new System.Windows.Forms.OpenFileDialog();
                OFD.Filter = "XML files (*.xml)|*.xml|STA files (*.sta)|*.sta|XLS files (*.xls)|*.xls|XLSX files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
                if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    XYDataList lstXYData = new XYDataList();
                    if (OFD.FilterIndex == 3 || OFD.FilterIndex == 4)
                    {
                        lstXYData = NFTestStepVM.ExcelToTable(OFD.FileName);
                    }
                    else
                    {
                        lstXYData = (XYDataList)CommUtils.DeserializerData(typeof(XYDataArr), OFD.FileName);
                    }

                    (this.DataContext as NFTestStepVM).LossTableAfterDut = lstXYData;
                    //MessageBox.Show("导入成功!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #2
0
 private void btnAExport_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
 {
     try
     {
         System.Windows.Forms.SaveFileDialog SFD = new System.Windows.Forms.SaveFileDialog();
         SFD.Filter = "XML files (*.xml)|*.xml|STA files (*.sta)|*.sta|XLS files (*.xls)|*.xls|XLSX files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
         if (SFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             XYDataList lstXYData = (this.DataContext as NFTestStepVM).LossTableAfterDut;
             if (SFD.FilterIndex == 3 || SFD.FilterIndex == 4)
             {
                 NFTestStepVM.TableToExcel(lstXYData, SFD.FileName);
             }
             else
             {
                 CommUtils.SerializeData(lstXYData.GetType(), lstXYData, SFD.FileName);
             }
             MessageBox.Show("导出成功!");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
コード例 #3
0
        public static XYDataList ExcelToTable(string file)
        {
            if (!File.Exists(file))
            {
                return(null);
            }
            XYDataList lstXYData = new XYDataList();
            IWorkbook  workbook;
            string     fileExt = Path.GetExtension(file).ToLower();

            using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
            {
                //XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式
                if (fileExt == ".xlsx")
                {
                    workbook = new XSSFWorkbook(fs);
                }
                else if (fileExt == ".xls")
                {
                    workbook = new HSSFWorkbook(fs);
                }
                else
                {
                    workbook = null;
                }
                if (workbook == null)
                {
                    return(null);
                }

                ISheet sheetXYData = workbook.GetSheet("XYData");

                for (int i = 1; i <= sheetXYData.LastRowNum - sheetXYData.FirstRowNum; i++)
                {
                    xyData XYD = new xyData();

                    XYD.X = Convert.ToDouble(GetValueType(sheetXYData.GetRow(i).GetCell(0)));
                    XYD.Y = Convert.ToDouble(GetValueType(sheetXYData.GetRow(i).GetCell(1)));

                    lstXYData.lstXYData.Add(XYD);
                }
            }
            return(lstXYData);
        }
コード例 #4
0
        public static void TableToExcel(XYDataList lstXYData, string saveFileName)
        {
            if (lstXYData == null)
            {
                return;
            }

            if (File.Exists(saveFileName))
            {
                File.Delete(saveFileName);
            }

            IWorkbook workbook;
            string    type = Path.GetExtension(saveFileName).ToLower();

            if (type == ".xlsx")
            {
                workbook = new XSSFWorkbook();
            }
            else if (type == ".xls")
            {
                workbook = new HSSFWorkbook();
            }
            else
            {
                workbook = null;
            }
            if (workbook == null)
            {
                return;
            }

            //sheet名
            ISheet sheetXYData = workbook.CreateSheet("XYData");

            //表头
            IRow rowHeadXYData = sheetXYData.CreateRow(0);

            ICell cellHeadX = rowHeadXYData.CreateCell(0);

            cellHeadX.SetCellValue("频率");
            ICell cellHeadY = rowHeadXYData.CreateCell(1);

            cellHeadY.SetCellValue("Resp");

            //数据
            for (int i = 1; i <= lstXYData.lstXYData.Count; i++)
            {
                xyData XYD = lstXYData.lstXYData[i - 1];

                IRow rowXYData = sheetXYData.CreateRow(i);

                ICell cellX = rowXYData.CreateCell(0);
                cellX.SetCellValue(XYD.X.ToString());
                ICell cellY = rowXYData.CreateCell(1);
                cellY.SetCellValue(XYD.Y.ToString());
            }

            //转为字节数组
            MemoryStream stream = new MemoryStream();

            workbook.Write(stream);
            var buf = stream.ToArray();

            //保存为Excel文件
            using (FileStream fs = new FileStream(saveFileName, FileMode.Create, FileAccess.Write))
            {
                fs.Write(buf, 0, buf.Length);
                fs.Flush();
            }
        }