private static String BuildAnalysis() { String analysis = ""; ExcelWriterReader <AnalysisDTO> excelWriter = new ExcelWriterReader <AnalysisDTO>(); AnalysisDTO analysisDTO = null; analysis += "__________________________________________________________________________________________\n"; analysis += "Размерность матриц : " + TargetMatrixSize + "*" + TargetMatrixSize + ", Количество матриц : " + CountOfMatrix + "\n"; if (BruteForceMethodEnable) { analysis += "Сумма расстояний для полного перебора : " + BruteForceSums + "\n"; } if (BranchMethodEnable) { analysis += "Сумма расстояний для метода ветвей и границ : " + BranchClassicSums + "\n"; } if (BranchPlusMethodEnable) { analysis += "Сумма расстояний для метода ветвей и границ+ : " + BranchClassicPlusSums + "\n"; } if (BranchPlusMethodEnable && BranchMethodEnable) { analysis += "Совпало : " + odinakovih + ", лучше : " + luche + ", хуже : " + huge + "\n"; analysisDTO = new AnalysisDTO("Метод ветвей и границ", "Метод ветвей и границ PLUS" , TargetMatrixSize, CountOfMatrix, ListWithBranchClassicSum, ListWithBranchClassicPlusSum); } if (BranchMethodEnable && BcSharpMethodEnable) { analysis = ""; analysisDTO = new AnalysisDTO(BranchAndBounceClassicTitle, BranchAndBounceSharpTitle , TargetMatrixSize, CountOfMatrix, ListWithBranchClassicSum, ListWithAllSumsForBcSharpSolutions); } if (IsWriteToExcel && analysisDTO != null) { excelWriter.WriteToFile(null, null, analysisDTO); } return(analysis); }
public IHttpActionResult GetAnalysis(int filter) { var dt = bl.GetAnalysis(filter); AnalysisModel analysisModel = new AnalysisModel(); foreach (DataRow row in dt.Rows) { AnalysisDTO analysis = new AnalysisDTO { id = int.Parse(row["id"].ToString()), name = row["name"].ToString() }; analysisModel.analysis.Add(analysis); } if (dt == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Json(analysisModel)); }
public bool WriteToFile(string nameOfFile, string directoryPath, T objectToSave) { AnalysisDTO analysysDTO = null; if (objectToSave is AnalysisDTO) { analysysDTO = objectToSave as AnalysisDTO; } else { throw new InvalidCastException("This is object not instatnce of AnalysysDTO"); } #region абота с директорией if (directoryPath == null || directoryPath.Length == 0) { directoryPath = @"c:\Parsed_Data"; // Директория для сохранения файлов Excel } // Проверяем , чтобы директория существовала. Если её нет — создаем. try { // Проверяем, существует ли директория if (!Directory.Exists(directoryPath)) { // Пытаемся создать директорию DirectoryInfo di = Directory.CreateDirectory(directoryPath); } } catch (DirectoryNotFoundException ex) { throw ex; } catch (Exception ex) { throw ex; } finally { } #endregion #region абота с файлом if (nameOfFile == null || nameOfFile.Length == 0) { nameOfFile = "Count - " + analysysDTO.CountOfMatrix + "__Size - " + analysysDTO.MatrixSize; } // Создание файла string file = "C:\\Parsed_Data\\" + nameOfFile + ".xls"; // Проверка на существование файла if (File.Exists(file)) { int i = 1; do { file = "C:\\Parsed_Data\\" + nameOfFile + "-" + i + ".xls"; ++i; } while (File.Exists(file)); } #endregion #region Запись в Excel(.xls) // Создание книжки Workbook workbook = new Workbook(); // Создание таблицы Worksheet worksheet = new Worksheet("First List"); // Указываем ширину столбцов worksheet.Cells.ColumnWidth[0, 0] = 7000; worksheet.Cells.ColumnWidth[0, 1] = 7000; worksheet.Cells.ColumnWidth[0, 2] = 7000; worksheet.Cells.ColumnWidth[0, 3] = 7000; worksheet.Cells[0, 0] = new Cell("Количество матриц: " + analysysDTO.CountOfMatrix); worksheet.Cells[1, 0] = new Cell("Размерность матриц: " + analysysDTO.MatrixSize); worksheet.Cells[2, 0] = new Cell("Совпало решений: " + analysysDTO.SecondMethodSumEqualsFirstMethodSum); worksheet.Cells[3, 0] = new Cell("PLUS лучше Classic: " + analysysDTO.SecondMethodSumBestThenFirstMethodSum); worksheet.Cells[4, 0] = new Cell("Classic лучше PLUS: " + analysysDTO.SecondMethodSumLessThenFirstMethodSum); // Делаем «Шапку» для таблицы worksheet.Cells[6, 0] = new Cell("Матрица №"); worksheet.Cells[6, 1] = new Cell(analysysDTO.FirstMethodTitle); worksheet.Cells[6, 2] = new Cell(analysysDTO.SecondMethodTitle); worksheet.Cells[6, 3] = new Cell("Delta (SUM(plus) - SUM(classic))"); int startIndex = 7; // Указываем , в какую ячейку писать информацию, которая пишется в таблицу for (int i = 0; i < analysysDTO.FirstMethodAllMatrixSum.Count; i++) { worksheet.Cells[i + startIndex, 0] = new Cell(i + 1); worksheet.Cells[i + startIndex, 1] = new Cell(analysysDTO.FirstMethodAllMatrixSum[i]); worksheet.Cells[i + startIndex, 2] = new Cell(analysysDTO.SecondMethodAllMatrixSum[i]); worksheet.Cells[i + startIndex, 3] = new Cell(analysysDTO.FirstAndSecondMethodsDelta[i]); } // Добавляем таблицу в таблицы файла workbook.Worksheets.Add(worksheet); // Сохраняем файл workbook.Save(file); #endregion return(true); }