/// <summary> /// 运算-通过从EXCEL导入的DT获取表头信息 /// </summary> /// <param name="dt"></param> /// <param name="comselectid"></param> /// <returns></returns> public DataTable Generatetemp(DataTable dt, int comselectid) { var resultdt = new DataTable(); //保存‘配方代码’字段,用于排除重复值 var colorcode = string.Empty; //保存‘版本日期’字段,用于排除重复值 var confrimdt = string.Empty; //保存‘层’字段,用于排除重复值 var layer = 0; try { #region 旧系统使用 if (comselectid == 1) { //获取表头临时表 resultdt = dtList.Get_gendt(); //循环从模板EXCEL获取的DT foreach (DataRow row in dt.Rows) { var newrow = resultdt.NewRow(); newrow[0] = row[0]; //ID newrow[1] = row[1]; //车厂 newrow[2] = ""; //颜色代码 newrow[3] = ""; //颜色名称 newrow[4] = row[2]; //适用车型 newrow[5] = "伊施威"; //品牌 newrow[6] = row[11]; //涂层 newrow[7] = ""; //差异色 newrow[8] = Convert.ToDateTime(row[10]).Year.ToString(); //年份(注:取‘制作日期’中的年份) newrow[9] = "原车板"; //色版来源 newrow[10] = row[3]; //配方号 newrow[11] = ""; //颜色索引号 newrow[12] = row[10]; //制作日期 newrow[13] = "陈富明"; //制作人 newrow[14] = DateTime.Now.Date; //录入日期 newrow[15] = "冯惠娴"; //录入人 newrow[16] = row[9]; //审核日期 newrow[17] = "谭晓红"; //审核人 newrow[18] = ""; //备注 newrow[19] = ""; //来源分类 newrow[20] = row[7]; //颜色组别(导出新数据库模板使用) resultdt.Rows.Add(newrow); } } #endregion //以新系统模板纵向导出 else if (comselectid == 2) { //获取表头临时表 resultdt = dtList.Get_NewTempdt(); //循环从模板EXCEL获取的DT foreach (DataRow rows in dt.Rows) { var newrow = resultdt.NewRow(); newrow[0] = rows[0]; //ID newrow[1] = rows[1]; //制造商 newrow[2] = rows[2]; //车型 newrow[3] = rows[3]; //涂层 newrow[4] = rows[4]; //颜色描述 newrow[5] = rows[5]; //内部色号 newrow[6] = rows[6]; //主配方色号(差异色) newrow[7] = rows[7]; //差异色名称 newrow[8] = rows[8]; //颜色组别 newrow[9] = rows[9]; //标准色号 newrow[10] = rows[10]; //RGBValue newrow[11] = rows[11]; //版本日期 newrow[12] = rows[12]; //层 resultdt.Rows.Add(newrow); } } //以新系统模板横向导出 else if (comselectid == 3) { //获取导出模板(横向) resultdt = dtList.Get_ExportVdt(); //dtList.Get_ErrorRecorddt(); //先循环导入EXCEL数据源 foreach (DataRow rows in dt.Rows) { //若循环获取的‘内部色号’与变量一致,即不用继续 if (colorcode == Convert.ToString(rows[4]) && confrimdt == Convert.ToString(rows[9]) && layer == Convert.ToInt32(rows[10])) { continue; } //若不相同,先将当前循环行的值进行赋值至变量 colorcode = Convert.ToString(rows[4]); confrimdt = Convert.ToString(rows[9]); layer = Convert.ToInt32(rows[10]); resultdt.Merge(GetVdt(rows, dt, resultdt)); } } } catch (Exception) { resultdt.Rows.Clear(); resultdt.Columns.Clear(); } return(resultdt); }