xlnt - user-friendly xlsx library for C++14

Author:Thomas Fussell
Source code:https://github.com/tfussell/xlnt
Issues:https://github.com/tfussell/xlnt/issues
Generated:Jan 01, 2017
License:MIT
Version:0.9

Introduction

xlnt is a C++14 library for reading, writing, and modifying XLSX files as described in [ECMA 376](http://www.ecma-international.org/publications/standards/Ecma-376.htm). The API is based on [openpyxl](https://bitbucket.org/openpyxl/openpyxl), a Python library to read/write Excel 2007 xlsx/xlsm files, and ultimately on [PHPExcel](https://github.com/PHPOffice/PHPExcel), pure PHP library for reading and writing spreadsheet files upon which openpyxl was based. This project is still very much a work in progress, but the core development work is complete.

Summary of Features

Feature Read Edit Write
Excel-style Workbook
LibreOffice-style Workbook
Numbers-style Workbook
Encrypted Workbook (Excel 2007-2010)  
Encrypted Workbook (Excel 2013-2016)  
Excel Binary Workbook (.xlsb)      
Excel Macro-Enabled Workbook (.xlsm)      
Excel Macro-Enabled Template (.xltm)      
Document Properties
Numeric Cell Values
Inline String Cell Values
Shared String Cell Values
Shared String Text Run Formatting (e.g. varied fonts within a cell)
Hyperlink Cell Values      
Formula Cell Values      
Formula Evaluation      
Page Margins
Page Setup      
Print Area      
Comments  
Header and Footer      
Custom Views      
Charts      
Chartsheets      
Dialogsheets      
Themes  
Cell Styles
Cell Formats
Formatting->Alignment (e.g. right align)
Formatting->Border (e.g. red cell outline)
Formatting->Fill (e.g. green cell background)
Formatting->Font (e.g. blue cell text)
Formatting->Number Format (e.g. show 2 decimals)
Formatting->Protection (e.g. hide formulas)
Column Styles      
Row Styles      
Sheet Styles      
Conditional Formatting      
Tables      
Table Formatting      
Pivot Tables      
XLSX Thumbnail  
Custom OOXML Properties      
Custom OOXML Parts      
Drawing      
Text Box      
WordArt      
Embedded Content (e.g. images)      
Excel VBA      

Sample code:

#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("data/sample.xlsx");

    return 0;
}

How to Contribute Code

See Information For Developers

Installation

Getting the source

Indices and tables

Release Notes