📊 Cross-platform user-friendly xlsx library for C++11+
Go to file
2017-01-19 08:59:46 -05:00
benchmarks make benchmarks show something useful 2016-12-04 12:20:12 +01:00
cmake bump dynamic library version to 0.9.3 (forgot to update it after 0.9.1) 2017-01-05 07:47:52 -05:00
docs clean up readme, move technical stuff to separate documentation website 2017-01-19 08:59:46 -05:00
include/xlnt hardcode enum serialization/deserialization, improve metadata property comsumption 2017-01-16 13:05:19 -05:00
samples rename getters and setters to the property name, many breaking changes\! 2016-12-02 14:37:50 +01:00
source hardcode enum serialization/deserialization, improve metadata property comsumption 2017-01-16 13:05:19 -05:00
tests rename zip to zstream in tests too 2017-01-04 21:14:37 -05:00
third-party compile and link third-party amalgamation as a static lib instead of object files and fix clang warnings in cryptopp 2017-01-02 17:41:39 -05:00
.appveyor.yml try non-previous vs in appveyor 2017-01-16 10:17:54 -05: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 clean up readme, move technical stuff to separate documentation website 2017-01-19 08:59:46 -05:00
.gitmodules change from botan to cryptopp 2016-12-13 22:48:38 +00:00
.travis.yml specify g++ version 2017-01-02 14:03:48 -05:00
AUTHORS.md Update AUTHORS.md 2016-06-04 09:08:03 -06:00
CMakeLists.txt suppress dev warnings in cryptopp cmake, locate python more flexibly using find_package 2016-12-14 08:27:09 +00:00
CONTRIBUTING.md Clarify how to contribute to the project 2016-09-07 18:36:36 -04:00
LICENSE.md update readme and license for crypto++ 2016-12-14 00:00:31 +00:00
README.md clean up readme, move technical stuff to separate documentation website 2017-01-19 08:59:46 -05:00

xlnt

Travis Build Status AppVeyor Build status Coverage Status ReadTheDocs 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. xlnt is currently under active feature development and is on track for the version 1.0 release in the next few weeks. Until then, the API could have significant changes. For a high-level summary of what you can do with this library, see here.

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/lib -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.