From ec323d86ab06199077f941d6ae335feb62db4165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Thu, 29 Feb 2024 19:05:20 +0100 Subject: [PATCH] Refactor datasetsExcel --- src/list/DatasetsExcel.cc | 18 +++++++----------- src/list/DatasetsExcel.h | 8 ++------ src/list/b_list.cc | 4 ++-- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/list/DatasetsExcel.cc b/src/list/DatasetsExcel.cc index 2369705..8aa8615 100644 --- a/src/list/DatasetsExcel.cc +++ b/src/list/DatasetsExcel.cc @@ -4,7 +4,7 @@ namespace platform { - DatasetsExcel::DatasetsExcel(json& data) : data(data), ExcelFile() + DatasetsExcel::DatasetsExcel() { file_name = "datasets.xlsx"; workbook = workbook_new(getFileName().c_str()); @@ -15,39 +15,35 @@ namespace platform { { workbook_close(workbook); } - void DatasetsExcel::report() + void DatasetsExcel::report(json& data) { int datasetNameSize = 25; // Min size of the column int balanceSize = 75; // Min size of the column worksheet = workbook_add_worksheet(workbook, "Datasets"); + // Header worksheet_merge_range(worksheet, 0, 0, 0, 5, "Datasets", styles["headerFirst"]); - formatColumns(datasetNameSize, balanceSize); // Body header row = 2; int col = 0; - int i = 0; for (const auto& name : { "NÂș", "Dataset", "Samples", "Features", "Classes", "Balance" }) { writeString(row, col++, name, "bodyHeader"); } + // Body for (auto& [key, value] : data.items()) { row++; if (key.size() > datasetNameSize) { datasetNameSize = key.size(); } - writeInt(row, 0, i++, "ints"); + writeInt(row, 0, row - 3, "ints"); writeString(row, 1, key.c_str(), "text"); writeInt(row, 2, value["samples"], "ints"); writeInt(row, 3, value["features"], "ints"); writeInt(row, 4, value["classes"], "ints"); writeString(row, 5, value["balance"].get().c_str(), "text"); } - row++; - formatColumns(datasetNameSize, balanceSize); - } - void DatasetsExcel::formatColumns(int dataset, int balance) - { + // Format columns worksheet_freeze_panes(worksheet, 3, 2); - std::vector columns_sizes = { 5, dataset, 10, 10, 10, balance }; + std::vector columns_sizes = { 5, datasetNameSize, 10, 10, 10, balanceSize }; for (int i = 0; i < columns_sizes.size(); ++i) { worksheet_set_column(worksheet, i, i, columns_sizes.at(i), NULL); } diff --git a/src/list/DatasetsExcel.h b/src/list/DatasetsExcel.h index d6ae74a..4d4daaa 100644 --- a/src/list/DatasetsExcel.h +++ b/src/list/DatasetsExcel.h @@ -11,13 +11,9 @@ namespace platform { class DatasetsExcel : public ExcelFile { public: - explicit DatasetsExcel(json& data); + DatasetsExcel(); ~DatasetsExcel(); - void report(); - private: - void formatColumns(int dataset, int balance); - json data; - + void report(json& data); }; } #endif //DATASETS_EXCEL_H \ No newline at end of file diff --git a/src/list/b_list.cc b/src/list/b_list.cc index 142f088..90ffcb3 100644 --- a/src/list/b_list.cc +++ b/src/list/b_list.cc @@ -72,8 +72,8 @@ int main(int argc, char** argv) } std::cout << Colors::RESET() << std::endl; if (excel) { - auto report = platform::DatasetsExcel(data); - report.report(); + auto report = platform::DatasetsExcel(); + report.report(data); std::cout << "Output saved in " << report.getFileName() << std::endl; } return 0;