/// <summary> /// /// </summary> /// <param name="excelWorkbook"></param> /// <param name="dataWorksheet"></param> /// <param name="logWorksheet"></param> /// <param name="bmStatus"></param> /// <returns></returns> private static bool UpdateExcelWithZeroData(Worksheet dataWorksheet, Worksheet logWorksheet, IBIGMatrixStatus bmStatus) { int numDays = GetNumberOfDays(1, bmStatus); int outputRowStart = 6; int outputRowEnd = (numDays*6) + 5; string xlFile = Globals.ThisWorkbook.FullName; for (int sr = 1; sr <= 12; ++sr) { int numDaysSR = GetNumberOfDays(sr, bmStatus); if (numDaysSR != numDays) { bmStatus.log("Error: SR" + sr.ToString() + " num days=" + numDaysSR + " SR1 num days=" + numDays.ToString()); return false; } FileInfo fi = new FileInfo(xlFile); string inFile = xlFile.Replace(fi.Extension, "") + "_SR" + sr.ToString() + ".in"; string outFile = xlFile.Replace(fi.Extension, "") + "_SR" + sr.ToString() + ".out"; string logFile = xlFile.Replace(fi.Extension, "") + "_SR" + sr.ToString() + ".log"; if (File.Exists(inFile)) File.Delete(inFile); if (File.Exists(outFile)) File.Delete(outFile); if (File.Exists(logFile)) File.Delete(logFile); string status = "Zeroing out data"; string runTime = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); int outputCol = 6 + ((sr - 1) * 2); if( dataWorksheet != null ){ Microsoft.Office.Interop.Excel.Range range = dataWorksheet.get_Range(dataWorksheet.Cells[outputRowStart + 1, outputCol + 1], dataWorksheet.Cells[outputRowEnd + 1, outputCol + 1]); range.Formula = "0"; } if (logWorksheet != null) { Microsoft.Office.Interop.Excel.Range range = logWorksheet.get_Range(logWorksheet.Cells[sr + 1, 5], logWorksheet.Cells[sr + 1, 5]); range.Formula = status; range = logWorksheet.get_Range(logWorksheet.Cells[sr + 1, 4], logWorksheet.Cells[sr + 1, 4]); range.Formula = runTime; } } bmStatus.logInfo("zeroed out data for " + Globals.ThisWorkbook.Name + " num days=" + numDays.ToString()); GC.Collect(); return true; }
private static bool UpdateExcelWithSubreachData(Worksheet j349Worksheet, Worksheet j349LogWorksheet, int subreach, string inFile, string outFile, string status, float[] outDataoutData,int nDays, IBIGMatrixStatus bmStatus) { string runTime = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); // data size 438 int outputRowStart = 6; int outputRowEnd = nDays*6 + 5; int outputCol = 6 + ((subreach - 1) * 2); string[,] sValues = new string[nDays*6, 1]; float[,] fValues = new float[nDays * 6, 1]; int ri = 0; try { for (int r = outputRowStart; r <= outputRowEnd; ++r) { ri = r - outputRowStart; if (outDataoutData == null) { sValues[ri, 0] = "0"; fValues[ri, 0] = 0.0f; } else { sValues[ri, 0] = outDataoutData[ri].ToString(); fValues[ri, 0] = outDataoutData[ri]; } } } catch (Exception e) { Debug.WriteLine(e.ToString()); } // Log info string[,] lsValues = new string[1, 4]; FileInfo fi = new FileInfo(inFile); lsValues[0, 0] = fi.Name; fi = new FileInfo(outFile); lsValues[0, 1] = fi.Name; ; lsValues[0, 2] = runTime; lsValues[0, 3] = status; // extract range from j349Worksheet try { Microsoft.Office.Interop.Excel.Range range = j349Worksheet.get_Range(j349Worksheet.Cells[outputRowStart + 1, outputCol + 1], j349Worksheet.Cells[outputRowEnd + 1, outputCol + 1]); range.Value2 = fValues; } catch (Exception e) { bmStatus.log("Error: unable to update excel worksheet with results of SR" + subreach.ToString()); bmStatus.logInfo(e.ToString()); return false; } // extract range from j349LogWorksheet try { Microsoft.Office.Interop.Excel.Range range = j349LogWorksheet.get_Range(j349LogWorksheet.Cells[subreach + 1, 2], j349LogWorksheet.Cells[subreach + 1, 5]); range.Value2 = lsValues; } catch (Exception e) { bmStatus.log("Error: unable to update excel worksheet with results of SR" + subreach.ToString()); bmStatus.logInfo(e.ToString()); return false; } //GC.Collect(); bmStatus.logInfo("SR" + subreach.ToString() + " updated " + j349Worksheet.Name + " with model output."); return true; }