예제 #1
0
        private void mm()
        {
            DataTable     dt    = new DataTable();
            string        fil   = "excel(*.xlsx)|*.xlsx|excel(*.xls)|*.xls";
            List <string> files = XlsRAW.Readloads(fil);

            if (files.Count > 0)
            {
                try
                {
                    foreach (string fl in files)
                    {
                        DataTable tb = XlsRAW.readxls(fl);
                        //判断是否已创建列
                        if (dt.Columns.Count == 0)
                        {
                            dt = tb.Copy();
                            //for(int i=0;i<tb.Columns.Count;i++)
                            //{
                            //    dt.Columns.Add(tb.Columns[i].ColumnName);
                            //}
                        }
                        else
                        {
                            //添加新行
                            for (int i = 0; i < tb.Rows.Count; i++)
                            {
                                //dt.Rows.Add(tb.Rows[i]);
                                dt.ImportRow(tb.Rows[i]);
                            }
                        }
                    }
                    string dir       = files[0];
                    string writename = dir.Replace(dir.Substring(dir.LastIndexOf('\\') + 1), "合并结果.xlsx");
                    XlsRAW.Writexls(writename, dt);
                    this.Close();
                }
                catch
                {
                    MessageBox.Show("结构不一样");
                }
            }
            else
            {
                MessageBox.Show("sth wrong");
            }
        }
예제 #2
0
        private void But_open_Click(object sender, RoutedEventArgs e)
        {
            Tuple <TB, string> readxls = XlsRAW.readxlsdir();

            this.lab_open.Content = readxls.Item2;
        }
예제 #3
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            const int mincell  = 6;
            string    readfile = XlsRAW.readfilename("读取设计参数", 1);

            if (readfile == "")//如果没有选择文件就退出
            {
                return;
            }
            //DataTable tb = XlsRAW.readxlsbytitle("读取设计参数");
            DataTable tb = XlsRAW.readxls(readfile);

            if (tb.Rows.Count > 0 && tb.Columns.Count > 3 && (tb.Columns.Count - 3) % mincell == 0)
            {
                List <Duanmian> dms = new List <Duanmian>();
                for (int i = 0; i < tb.Rows.Count; i++)
                {
                    Duanmian dm     = new Duanmian();
                    DataRow  row    = tb.Rows[i];
                    string   zhuang = row[0].ToString();
                    double   hd     = Convert.ToDouble(row[1]);
                    double   kd     = Convert.ToDouble(row[2]);

                    //构造横断点
                    if (zhuang.Contains('+') || zhuang.Contains('-'))
                    {
                        dm.name = zhuang;
                    }
                    else
                    {
                        double zhua = Convert.ToDouble(zhuang);
                        if (zhua >= 0)
                        {
                            dm.name = zhua.ToString("0+000");
                        }
                        else
                        {
                            dm.name = Math.Abs(zhua).ToString("0-000");
                        }
                    }
                    List <Point> pts = new List <Point>();
                    pts.Add(new Point(0, hd));                             //0

                    pts.Insert(0, new Point(pts[0].X - kd / 2, hd));       //左河底
                    pts.Add(new Point(pts[pts.Count - 1].X + kd / 2, hd)); //右河底
                    double lpre = hd, rpre = hd;
                    for (int j = 3; j < tb.Columns.Count; j = j + mincell)
                    {
                        double lhc = Convert.ToDouble(row[j]);
                        double lmc = Convert.ToDouble(row[j + 1]);
                        double lkc = Convert.ToDouble(row[j + 2]);
                        double rhc = Convert.ToDouble(row[j + 3]);
                        double rmc = Convert.ToDouble(row[j + 4]);
                        double rkc = Convert.ToDouble(row[j + 5]);

                        pts.Insert(0, new Point(pts[0].X - Math.Abs(lhc - lpre) * lmc, lhc));
                        pts.Add(new Point(pts[pts.Count - 1].X + Math.Abs(rhc - rpre) * rmc, rhc));//4

                        pts.Insert(0, new Point(pts[0].X - lkc, lhc));
                        pts.Add(new Point(pts[pts.Count - 1].X + rkc, rhc));//4

                        lpre = pts[0].Y;
                        rpre = pts[pts.Count - 1].Y;
                    }

                    dm.data = pts.Distinct().ToList();

                    dms.Add(dm);
                }
                Writebaitu(dms, readfile);
            }
            else
            {
                MessageBox.Show("数据文件有问题");
            }
            this.Close();
        }