xlnt/docs/source/includes/_introduction.md
2017-01-19 08:37:40 -05:00

5.8 KiB

Introduction

#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("xlnt.xlsx");
    return 0;
}

xlnt is a C++14 library for reading, writing, and modifying XLSX files as described in ECMA 376. The API is based on openpyxl, a Python library to read/write Excel 2007 xlsx/xlsm files, and ultimately on 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.

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

Performance

Creates a new workbook and writes 1 million cells to a file in X seconds using a fully optimized build on Windows 10 with MSVC 2015.