diff options
author | rtk0c <[email protected]> | 2021-05-26 15:31:12 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-05-29 13:34:43 -0700 |
commit | f957f4094a8d98ad0de294c3e6325ce9a860994e (patch) | |
tree | db5caa6fbefa1699149e974448fd4dab6b2535b1 /core/src/Model/Template/TableTemplate.cpp | |
parent | a611b22650d1e40593db4fb1bce29d925e49e932 (diff) |
More work on TableTemplate
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; +} |