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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9d481ac Β· Dec 27, 2020

History

88 Commits
Dec 28, 2019
Feb 8, 2020
Feb 8, 2020
Dec 27, 2020
Nov 30, 2018
Oct 26, 2018
Nov 29, 2018
Jun 12, 2018
Jan 10, 2019
Jan 10, 2019
Feb 5, 2019
Oct 19, 2018
Jun 28, 2018

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.