diff options
Diffstat (limited to 'core/src/Model/Template/TableTemplate.cpp')
-rw-r--r-- | core/src/Model/Template/TableTemplate.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/core/src/Model/Template/TableTemplate.cpp b/core/src/Model/Template/TableTemplate.cpp index caf0e21..0684c77 100644 --- a/core/src/Model/Template/TableTemplate.cpp +++ b/core/src/Model/Template/TableTemplate.cpp @@ -1,5 +1,7 @@ #include "TableTemplate.hpp" +#include <xlsxwriter.h> + bool TableCell::IsPrimaryCell() const { return PrimaryCellLocation == Location; @@ -117,3 +119,32 @@ TableTemplate::BreakCellsResult TableTemplate::BreakCells(Vec2i topLeft) return BCR_Success; } + +lxw_workbook* TableTemplate::InstanciateToExcelWorkbook(const TableInstanciationParameters& params) const +{ + auto workbook = workbook_new("Table.xlsx"); + InstanciateToExcelWorksheet(workbook, params); + return workbook; +} + +lxw_worksheet* TableTemplate::InstanciateToExcelWorksheet(lxw_workbook* workbook, const TableInstanciationParameters& params) const +{ + auto worksheet = workbook_add_worksheet(workbook, "Cplt Export"); + + for (int y = 0; y < mTableHeight; ++y) { + for (int x = 0; x < mTableWidth; ++x) { + auto& cell = GetCell({ x, y }); + switch (cell.Type) { + case TableCell::ConstantCell: { + worksheet_write_string(worksheet, y, x, cell.Content.c_str(), nullptr); + } break; + + case TableCell::ParametricCell: { + // TODO + } break; + } + } + } + + return worksheet; +} |