Skip to content

Use libxlsxwriter in Qt 5 or 6. libxlsxwriter is a C library for creating Excel XLSX files.

License

Notifications You must be signed in to change notification settings

QtExcel/Qlibxlsxwriter

Repository files navigation

Qlibxlsxwriter

Read this in other languages: English, 🇰🇷 한국어

  • Qlibxlsxwriter is a helper project that allows libxlsxwriter to be used in Qt.
  • libxlsxwriter is a C library for creating Excel XLSX files. 👍
    • Q> Can Libxlsxwriter use an existing Excel file as a template?
    • A> No. Libxlsxwriter is designed only as a file writer. It cannot read or modify an existing Excel file. See FAQ for more information.

Sample (Hello World!)

// main.cpp
//
// Qlibxlsxwriter MIT license https://github.com/QtExcel/Qlibxlsxwriter
// libxlsxwriter  FreeBSD license https://github.com/jmcnamara/libxlsxwriter

#include <QCoreApplication>

#include "xlsxwriter.h"

int main(int argc, char **argv)
{
     QCoreApplication app(argc, argv); // It is a Qt code.

     // See Tutorial 1: Create a simple XLSX file.
     // http://libxlsxwriter.github.io/tutorial01.html

     /* Some data we want to write to the worksheet. */
     struct expense {
         char item[32];
         int  cost;
     };

     struct expense expenses[] = {
         {"Rent", 1000},
         {"Gas",   100},
         {"Food",  300},
         {"Gym",    50},
     };


    /* Create a workbook and add a worksheet. */
     lxw_workbook  *workbook  = workbook_new("tutorial01.xlsx");
     lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

     /* Start from the first cell. Rows and columns are zero indexed. */
     int row = 0;
     int col = 0;

     /* Iterate over the data and write it out element by element. */
     for (row = 0; row < 4; row++) {
         worksheet_write_string(worksheet, row, col,     expenses[row].item, NULL);
         worksheet_write_number(worksheet, row, col + 1, expenses[row].cost, NULL);
     }

     /* Write a total using a formula. */
     worksheet_write_string (worksheet, row, col,     "Total",       NULL);
     worksheet_write_formula(worksheet, row, col + 1, "=SUM(B1:B4)", NULL);

     /* Save the workbook and free any allocated memory. */
     return workbook_close(workbook);
}

Things to install first (Prerequisite)

How to setup (Installation)

  • Add the following code in your Qt project file(*.pro).
# YourQtProject.pro

# Set environment values for Qlibxlsxwriter. 
# You may use default values.
QLIBXLSXWRITER_PARENTPATH = ../libxlsxwriter/
include(../Qlibxlsxwriter/Qlibxlsxwriter.pri)

Tested Environment

Travis CI
Build Status

License and links

📫 Contact

Similar projects

  • QXlsx is excel file(*.xlsx) reader/writer library.
  • Because QtXlsx is no longer supported(2014), I created a new project that is based on QtXlsx. (2017-)
  • Development language of QXlsx is C++. (with Qt)
  • You don't need to use static library or dynamic shared object using QXlsx. 👍

  • Qxlnt is a helper project that allows xlnt to be used in Qt.
  • xlnt is a excellent library for using xlsx Excel files. 👍
  • I was looking for a way to make it easy to use in Qt. Of course, cmake is compatible with Qt, but it is not convenient to use. So I created Qxlnt.
  • Use SimpleXlsxWriter in Qt.
  • SimpleXlsxWriter is C++ library for creating XLSX files for MS Excel 2007 and above.