public void run(string text) { var filename = "./" + text + ".txt"; var importCore = new ExcelImportCore(); importCore.LoadFile("./excel.xlsx"); var ds = importCore.GetAllTables(false); Console.WriteLine(ds.Tables[0].Rows.Count); var allTable = ds.Tables[0]; DataTable outputTable = new DataTable(); outputTable = allTable.Copy(); outputTable.Rows.Clear(); outputTable.ImportRow(allTable.Rows[0]);//这是加入的是第一行 List <string> excelArr = new List <string>(); for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { excelArr.Add(allTable.Rows[i][0].ToString()); } Console.WriteLine("excel.xlsx文件总行数:" + excelArr.Count); List <string> txtArr = new List <string>(); //从头到尾以流的方式读出文本文件 //该方法会一行一行读出文本 using (System.IO.StreamReader sr = new System.IO.StreamReader(filename)) { string str; while ((str = sr.ReadLine()) != null) { txtArr.Add(str); } } Console.WriteLine("txt文件总行数:" + txtArr.Count); List <string> r = txtArr.Intersect(excelArr).ToList(); Console.WriteLine("相同ID的总行数:" + r.Count); //List<string> r2 = txtArr.Except(excelArr).ToList(); //Console.WriteLine("不同的总行数:" + r2.Count); Console.WriteLine("根据相同ID开始查找..."); for (var i = 0; i < allTable.Rows.Count; i++) { if (r.Exists(p => p == allTable.Rows[i][0].ToString())) { outputTable.ImportRow(allTable.Rows[i]); } } Console.WriteLine("根据相同ID查找的总行数:" + outputTable.Rows.Count); Console.WriteLine(" 开始写入新的excel,名称为:" + text + '-' + outputTable.Rows.Count + "-excel.xlsx"); var exportCore = new ExportExcelCore(); exportCore.RenderDataTableToExcel("./" + text + '-' + outputTable.Rows.Count + "-excel.xlsx", outputTable, "1", null); //exportCore.RenderDataTableToExcelHasTemplate(sdiag.FileName, file +"-excel.xlsx", dt, 3, 1); }
public string Import(FormCollection context) { var filename = Request["file"]; var importCore = new ExcelImportCore(); importCore.LoadFile(Server.MapPath(filename)); var ds = importCore.GetAllTables(true); string message = ""; List <object> list = new List <object>(); foreach (DataRow row in ds.Tables[0].Rows) { string srcname = PublicMethod.GetString(row["厂家名称型号"]).Trim(); if (!string.IsNullOrEmpty(srcname)) { var srcModels = SRCDal.Instance.GetWhere(new { FSRCNAME = srcname }).ToList(); if (srcModels.Count > 0) { ProductViewModel model = ProductViewDal.Instance.Get(srcModels[0].FPRODUCTID); if (model != null) { list.Add(new { FID = model.FID, FMODEL = model.FMODEL, FITEMID = model.FID, FPRODUCTNAME = model.FPRODUCTNAME, FPRODUCTTYPE = model.FPRODUCTTYPE, FPRODUCTCODE = model.FPRODUCTCODE, FASKQTY = row["主单位数量"].ToDecimal(), FUNITNAME = row["主计量单位"].ToStr(), FUNITID = model.FUNITID, FORDERUNIT = row["采购单位"].ToStr(), FORDERUNITQTY = row["采购单位数量"].ToDecimal(), FBRANDID = model.FBRANDID, FBRANDNAME = model.FBRANDNAME, FPKGFORMAT = model.FPKGFORMAT, FCATEGORYID = model.FTYPEID, FWEIGHT = model.FWEIGHT, FVOLUME = model.FVOLUME, FSTATUS = model.FSTATUS, FNEEDDATE = row["要求发货时间"].ToStr(), FUPDATETIME = model.FUPDATETIME, FSTATUSNAME = "草稿", FWEIGHTUNIT = "KG", FRATE = model.FRATE, FCOLORNO = row["色号"].ToStr(), FREMARK = row["销区备注"].ToStr(), FWHOLESALEPRICE = model.FPRIORITYP_L_RICE, FBATCHNO = model.FBATCHNO, FADVQTY = 0 }); } else { message += string.Format("商品编码:{0}不存在;", srcModels[0].FPRODUCTID); } } else { message += string.Format("厂家代码:{0}不存在;", srcname); } } } return(JSONhelper.ToJson(new { list = list, message = message })); }