📊 Cross-platform user-friendly xlsx library for C++11+
Go to file
Thomas Fussell 5b8820d2cd
Merge pull request #240 from shamanas/master
Setting the height of a row now produces the expected result.
2017-10-30 19:41:05 -04:00
benchmarks clean up samples and benchmarks, data handling 2017-04-13 20:18:32 -04:00
cmake use pybind11 instead of raw C Python API, python_streambuffer is broken for now 2017-07-30 09:48:57 -07:00
docs Adding clarification about the order of arguments 2017-05-05 08:35:09 +10:00
include/xlnt figured out the problem 2017-07-30 20:32:37 -07:00
logo fix logo 2017-04-12 10:33:40 -04:00
python clean up setup.py and install to LIBRARY_PREFIX on Windows instead of PREFIX 2017-08-08 07:15:50 -07:00
samples include headers for memcpy and size_t in sha implementations 2017-04-13 22:31:44 -04:00
source Empty row properties are now written correctly. Setting a row's height now also causes customHeight to be emitted. 2017-10-25 15:04:51 +03:00
tests remove accidental commit of test test 2017-08-18 21:38:53 -04:00
third-party use pybind11 instead of raw C Python API, python_streambuffer is broken for now 2017-07-30 09:48:57 -07:00
.appveyor.yml update ci scripts 2017-04-11 17:52: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 clean up read_batches and ignore some setup.py generated files 2017-08-07 07:26:04 -07:00
.gitmodules use externalproject instead of git submodules for dependencies 2017-03-02 08:41:17 -05:00
.travis.yml point lcov removal to the moved miniz file 2017-04-20 14:57:25 -04:00
AUTHORS.md Adding tpmccallum 2017-05-04 11:59:33 +10:00
CHANGELOG.md start working on documentation [ci skip] 2017-04-12 10:17:26 -04:00
CMakeLists.txt move most of the pyarrow logic to python wrapper, use pyarrow's cmake setup.py code 2017-08-04 10:12:25 -07: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 start working on documentation [ci skip] 2017-04-12 10:17:26 -04:00
README.md update logo with new concept design 2017-08-18 20:54:54 -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 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. 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.