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"); } }
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(); }