{"id":28717212,"url":"https://github.com/numberduck/numberduck-cplusplus","last_synced_at":"2025-06-15T03:13:55.749Z","repository":{"id":291536600,"uuid":"977812618","full_name":"NumberDuck/NumberDuck-CPlusPlus","owner":"NumberDuck","description":"A C++ library for developers to read and write Microsoft Excel compatible spreadsheets. Commercial closed source licensing available.","archived":false,"fork":false,"pushed_at":"2025-06-02T10:04:06.000Z","size":1192,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T21:21:48.345Z","etag":null,"topics":["chart","cplusplus","excel","formula","picture","xls"],"latest_commit_sha":null,"homepage":"https://numberduck.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NumberDuck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License-Commercial.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-05T02:13:32.000Z","updated_at":"2025-06-02T10:01:23.000Z","dependencies_parsed_at":"2025-05-22T08:30:24.587Z","dependency_job_id":null,"html_url":"https://github.com/NumberDuck/NumberDuck-CPlusPlus","commit_stats":null,"previous_names":["numberduck/numberduck-cplusplus"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/NumberDuck/NumberDuck-CPlusPlus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumberDuck%2FNumberDuck-CPlusPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumberDuck%2FNumberDuck-CPlusPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumberDuck%2FNumberDuck-CPlusPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumberDuck%2FNumberDuck-CPlusPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NumberDuck","download_url":"https://codeload.github.com/NumberDuck/NumberDuck-CPlusPlus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumberDuck%2FNumberDuck-CPlusPlus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259914930,"owners_count":22931334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","cplusplus","excel","formula","picture","xls"],"created_at":"2025-06-15T03:13:46.763Z","updated_at":"2025-06-15T03:13:55.714Z","avatar_url":"https://github.com/NumberDuck.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Number Duck\r\nv3.0.7 [J70]\r\n\r\nCopyright (C) 2012-2025, File Scribe\r\n\r\nhttps://numberduck.com\r\n\r\n## 🦆 About\r\nNumber Duck is a programming library for developers to read and write Microsoft Excel compatible spreadsheets from a variety of languages.\r\n\r\nSee NumberDuck.html for API details, or check the example folders.\r\n\r\n## 🚧 Installation\r\nThere are currently three ways to build Number Duck.\n\n### Source\nSince Number Duck is delivered as source, you can just drop the `NumberDuck.cpp` and `NumberDuck.hpp` files into your project.\n\n### CMake\nAlternatively you can use CMake to build and install a static library locally, by calling CMake with the `SIMPLE_OUTPUT` flag, eg:\n\n```\ncmake -S . -B _build -DSIMPLE_OUTPUT=true\ncmake --build _build\nsudo cmake --install _build\n```\n\nThis will build Number Duck (in the `_build` directory) and copy it to the default search paths for includes and libraries, so then you can just `#include \u003cNumberDuck.hpp\u003e` in your code and link to `NumberDuck`, eg:\n\n```\ng++ SimpleExample.cpp -lNumberDuck\n```\n\n### CPM.cmake\n\nNumber Duck has been tested with the [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) dependancy manager and works successfully.\n\n```\nCPMAddPackage(\"gh:NumberDuck/NumberDuck-CPlusPlus@3.0.7\")\n````\r\n\r\n## 💾 Saving and Loading a Spreadsheet\r\nHere is a simple example of writing to a spreadsheet, and then reading it back in.\r\n\r\n```cpp\r\n#include \"../NumberDuck.hpp\"\r\n\r\n#include \u003cstdio.h\u003e\r\n\r\nusing namespace NumberDuck;\r\n\r\nint main(int argc, char **argv)\r\n{\r\n\tprintf(\"Simple Example\\n\");\r\n\tprintf(\"Create a spreadsheet!\\n\\n\");\r\n\r\n\tWorkbook* pWorkbook = new Workbook(Workbook::License::AGPL);\r\n\tWorksheet* pWorksheet = pWorkbook-\u003eGetWorksheetByIndex(0);\r\n\r\n\tCell* pCell = pWorksheet-\u003eGetCellByAddress(\"A1\");\r\n\tpCell-\u003eSetString(\"Totally cool spreadsheet!\");\r\n\r\n\tpWorksheet-\u003eGetCell(1,1)-\u003eSetFloat(3.1417f);\r\n\r\n\tpWorkbook-\u003eSave(\"SimpleExample.xls\", Workbook::FileType::XLS);\r\n\tdelete pWorkbook;\r\n\r\n\tWorkbook* pWorkbookIn = new Workbook(Workbook::License::AGPL);\r\n\tif (pWorkbookIn-\u003eLoad(\"SimpleExample.xls\"))\r\n\t{\r\n\t\tWorksheet* pWorksheetIn = pWorkbookIn-\u003eGetWorksheetByIndex(0);\r\n\t\tCell* pCellIn = pWorksheetIn-\u003eGetCell(0,0);\r\n\t\tprintf(\"Cell Contents: %s\\n\", pCellIn-\u003eGetString());\r\n\t}\r\n\r\n\tdelete pWorkbookIn;\r\n\r\n\treturn 0;\r\n}\r\r\n```\r\n\r\nMore how to code in the example folders above, or at https://numberduck.com/docs\r\n\r\n## 👮 License\r\nNumber Duck is dual licensed as Open Source (AGPLv3) and commercial closed source.\r\n\r\nClosed source licenses may be purchased from https://numberduck.com\r\n\r\nAdditional third party libraries (TinyXML2, Miniz) are licensed seperately, see License-ThirdParty.txt for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumberduck%2Fnumberduck-cplusplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumberduck%2Fnumberduck-cplusplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumberduck%2Fnumberduck-cplusplus/lists"}