private void ReadWaterYearsFromExcel(DateTime t1, DateTime t2) { if (idxDate < 0 || idxValue < 0) { return; } errorCount = 0; IRange rng = worksheet.UsedRange.Range; IValues values = (IValues)worksheet; for (int i = beginningRowIndex; i < rng.RowCount; i++) { if (values[i, idxDate] == null || values[i, idxValue] == null) { errorCount++; if (errorCount > 100) { Logger.WriteLine("date or value is null ;skipping row at index = " + i); } continue; } double dyear = -1; if (!SpreadsheetGearExcel.TryReadingValue(values[i, idxDate], out dyear)) { errorCount++; if (errorCount > 100) { Logger.WriteLine("error reading water year"); } continue; } int wy = Convert.ToInt32(dyear); for (int monthIndex = idxValue; monthIndex < idxValue + 12; monthIndex++) { DateTime t = GetDate(wy, monthIndex, idxValue); if (values[i, monthIndex] == null) { AddMissing(t); } else { double d; if (!SpreadsheetGearExcel.TryReadingValue(values[i, monthIndex], out d)) { errorCount++; Logger.WriteLine("error reading value"); throw new InvalidCastException("Could not read value"); } Add(t, d); } } } if (errorCount > 100) { Logger.WriteLine("Skipped " + (errorCount - 100) + " messages"); } }
private void ReadFromExcel(DateTime t1, DateTime t2) { errorCount = 0; if (idxDate < 0 || idxValue < 0) { return; } IRange rng = worksheet.UsedRange.Range; IValues values = (IValues)worksheet; for (int i = beginningRowIndex; i < rng.RowCount; i++) { //Console.WriteLine("row index "+i); if (idxSiteColumn >= 0) {// filtering enabled. var v = values[i, idxSiteColumn]; if (v == null) { continue; } if (v.Type == SpreadsheetGear.Advanced.Cells.ValueType.Number) { if (v.Number.ToString() != siteFilter) { continue; } } if (v.Type == SpreadsheetGear.Advanced.Cells.ValueType.Text) { if (v.Text != siteFilter) { continue; } } } if (values[i, idxDate] == null) { errorCount++; if (errorCount > 100) { continue; } Logger.WriteLine("date is null ;skipping row at index = " + i); continue; } DateTime t; if (!SpreadsheetGearExcel.TryReadingDate(workbook, values[i, idxDate], out t)) { errorCount++; if (errorCount > 100) { continue; } Logger.WriteLine(filename + ": can't read date; row at index = " + i); continue; } double d = Point.MissingValueFlag; if (values[i, idxValue] != null && !SpreadsheetGearExcel.TryReadingValue(values[i, idxValue], out d)) { errorCount++; if (errorCount < 100) { Logger.WriteLine(filename + ": can't read value ; row at index = " + i); } d = Point.MissingValueFlag; //continue; } if (double.IsNaN(d)) { d = Point.MissingValueFlag; } int idxTime = this.IndexOf(t); if (idxTime >= 0) { errorCount++; if (errorCount > 100) { continue; } string msg = "duplicate date found in row " + i + " date = '" + t.ToString() + "' value =" + d; Logger.WriteLine(msg); Messages.Add(msg); msg = "previously imported value = " + this[idxTime].Value; Logger.WriteLine(msg); Messages.Add(msg); } else if (t >= t1 && t <= t2) { Add(t, d); } } if (errorCount > 100) { Logger.WriteLine("Skipped " + (errorCount - 100) + " messages"); } }