public IList <CheckingDataInfo> GetCheckingData(SheetType sType, string strFilePath, params string[] columns) { if (columns.Length < 1) { throw new ApplicationException("列参数不能为个数为0"); } IList <CheckingDataInfo> dataList = new List <CheckingDataInfo>(); using (OleDbDataReader rdr = ExcelHelper.GetDataReader(sType, strFilePath)) { try { while (rdr.Read()) { if (rdr[columns[0]] != DBNull.Value && rdr[columns[0]].ToString() != String.Empty) { var info = new CheckingDataInfo(); if (dataList.FirstOrDefault(d => d.ExpressNo == rdr[columns[0]].ToString()) == null) { try { info.ExpressNo = rdr[columns[0]] == DBNull.Value ? String.Empty : rdr[columns[0]].ToString(); int expresLength = info.ExpressNo.Length; if (info.ExpressNo != String.Empty && info.ExpressNo.IndexOf(ConstList.FILTER, StringComparison.Ordinal) == 0) { info.ExpressNo = info.ExpressNo.Substring(3, expresLength - 3); } info.Money = rdr[columns[1]] == DBNull.Value ? String.Empty : rdr[columns[1]].ToString(); } catch (Exception ex) { throw new ApplicationException(ex.Message + " 列名错误"); } dataList.Add(info); } else { try { info.ExpressNo = rdr[columns[0]] == DBNull.Value ? String.Empty : rdr[columns[0]].ToString(); info.Money = rdr[columns[1]] == DBNull.Value ? String.Empty : rdr[columns[1]].ToString(); } catch (Exception ex) { throw new ApplicationException(ex.Message + " 列名错误"); } info = dataList.FirstOrDefault(d => d.ExpressNo == rdr[columns[0]].ToString()); if (info != null) { var newinfo = new CheckingDataInfo { ExpressNo = info.ExpressNo, Money = (decimal.Parse(info.Money) + decimal.Parse(rdr[columns[1]].ToString())).ToString(CultureInfo.InvariantCulture), }; dataList.Remove(info); dataList.Add(newinfo); } } } } } catch (Exception ex) { throw new ApplicationException(ex.Message); } finally { rdr.Close(); } } return(dataList); }
public IList <CheckingDataInfo> GetCheckingData(String sheetName, SheetType sType, string strFilePath, params string[] columns) { if (columns.Length < 1) { throw new ApplicationException("列参数不能为个数为0"); } IList <CheckingDataInfo> dataList = new List <CheckingDataInfo>(); try { using (OleDbDataReader rdr = ExcelHelper.GetDataReader(sType, strFilePath, sheetName)) { try { while (rdr.Read()) { if (rdr[columns[0]] != DBNull.Value && rdr[columns[0]].ToString() != String.Empty) { var info = new CheckingDataInfo(); if (dataList.FirstOrDefault(d => d.ExpressNo == rdr[columns[0]].ToString()) == null) { try { info.ExpressNo = rdr[columns[0]] == DBNull.Value ? String.Empty : rdr[columns[0]].ToString(); info.Money = rdr[columns[1]] == DBNull.Value ? String.Empty : rdr[columns[1]].ToString(); } catch (Exception ex) { throw new ApplicationException(ex.Message + " 列名错误"); } dataList.Add(info); } else { try { info.ExpressNo = rdr[columns[0]] == DBNull.Value ? String.Empty : rdr[columns[0]].ToString(); info.Money = rdr[columns[1]] == DBNull.Value ? String.Empty : rdr[columns[1]].ToString(); } catch (Exception ex) { throw new ApplicationException(ex.Message + " 列名错误"); } info = dataList.FirstOrDefault(d => d.ExpressNo == rdr[columns[0]].ToString()); if (info != null) { var newinfo = new CheckingDataInfo { ExpressNo = info.ExpressNo, Money = (decimal.Parse(info.Money) + decimal.Parse(rdr[columns[1]].ToString())).ToString(CultureInfo.InvariantCulture) }; dataList.Remove(info); dataList.Add(newinfo); } } } } } catch (Exception ex) { throw new Exception("处理异常", ex); } finally { rdr.Close(); rdr.Dispose(); } } } catch (Exception ex) { throw new Exception("处理异常", ex); } finally { GC.Collect(); } return(dataList); }