📊 Cross-platform user-friendly xlsx library for C++11+
Go to file
Félix Bourbonnais 28f7e6fa69 Add has_value to cell_iterator
When iterating over a range that doesn't ignore null rows/columns,
the operator*() throws when dereferencing an iterator to a null cell.
Add has_value() to cell_iterator to be able to make a check without
relying on exceptions.
And add a test case.
2021-12-08 15:49:14 -05:00
.circleci fix syntax 2021-02-20 22:34:24 -04:00
benchmarks bug fixes, move the faster serialisation into the numeric header 2020-03-01 22:01:14 +13:00
cmake Export xlnt::xlnt target when installed. 2018-08-07 09:08:29 -04:00
docs generate man page from docs 2017-09-08 17:00:11 -04:00
include/xlnt Add has_value to cell_iterator 2021-12-08 15:49:14 -05:00
logo fix logo 2017-04-12 10:33:40 -04:00
python copyright year bump (2018) 2018-01-22 09:38:48 -05:00
samples use smaller image 2021-01-02 12:49:36 -05:00
source Add has_value to cell_iterator 2021-12-08 15:49:14 -05:00
tests Add has_value to cell_iterator 2021-12-08 15:49:14 -05:00
third-party ignore nullptr warning in libstudxml, update to latest beta 9, and switch to submodule 2021-02-20 22:29:59 -04:00
.appveyor.yml appveyor too 2021-02-20 22:43:57 -04:00
.clang-format clang-format all source files, fix broken test helpers--lots of cleanup necessary as a result [ci skip] 2016-12-24 10:04:57 -05:00
.gitattributes clean up gitattributes 2016-11-09 17:24:47 -05:00
.gitignore initial implementation 2020-03-21 10:59:00 -04:00
.gitmodules ignore nullptr warning in libstudxml, update to latest beta 9, and switch to submodule 2021-02-20 22:29:59 -04:00
.release-it.json edit version bump path 2020-03-21 15:16:20 -04:00
AUTHORS.md Adding tpmccallum 2017-05-04 11:59:33 +10:00
book.json generate man page from docs 2017-09-08 17:00:11 -04:00
CHANGELOG.md start working on documentation [ci skip] 2017-04-12 10:17:26 -04:00
CMakeLists.txt Added CTest support 2019-07-17 12:09:07 -05:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-09-08 23:09:35 -04:00
CONTRIBUTING.md Clarify how to contribute to the project 2016-09-07 18:36:36 -04:00
LICENSE.md copyright year bump (2018) 2018-01-22 09:38:48 -05:00
package-lock.json update npm deps 2021-01-02 15:36:08 -05:00
package.json update npm deps 2021-01-02 15:36:08 -05:00
README.md fix gitbook link/badge (point to legacy for now) 2018-07-22 22:23:01 -04:00
SUMMARY.md start working on documentation [ci skip] 2017-04-12 10:17:26 -04:00

xlnt logo

Travis Build Status AppVeyor Build status Coverage Status Documentation Status License

Introduction

xlnt is a modern C++ library for manipulating spreadsheets in memory and reading/writing them from/to XLSX files as described in ECMA 376 4th edition. The first public release of xlnt version 1.0 was on May 10th, 2017. Current work is focused on increasing compatibility, improving performance, and brainstorming future development goals. For a high-level summary of what you can do with this library, see the feature list. Contributions are welcome in the form of pull requests or discussions on the repository's Issues page.

Example

Including xlnt in your project, creating a new spreadsheet, and saving it as "example.xlsx"

#include <xlnt/xlnt.hpp>

int main()
{
    xlnt::workbook wb;
    xlnt::worksheet ws = wb.active_sheet();
    ws.cell("A1").value(5);
    ws.cell("B2").value("string data");
    ws.cell("C3").formula("=RAND()");
    ws.merge_cells("C3:C4");
    ws.freeze_panes("B2");
    wb.save("example.xlsx");
    return 0;
}
// compile with -std=c++14 -Ixlnt/include -lxlnt

Documentation

Documentation for the current release of xlnt is available here.

License

xlnt is released to the public for free under the terms of the MIT License. See LICENSE.md for the full text of the license and the licenses of xlnt's third-party dependencies. LICENSE.md should be distributed alongside any assemblies that use xlnt in source or compiled form.