Read this in other languages: English, 🇰🇷 Korean, 🇷🇺 Russian
QXlsx is an Excel files (*.xlsx
) reader/writer library.
Development language of QXlsx is C++ (with Qt.)
This fork was intended to add some features not yet implemented in the original QXlsx.
Right now there is an ongoing work to fully implement charts, including full documentation.
This fork requires C++17 as it uses std::optional
.
THe ECMA-376 specifies that many parts of xlsx charts can be optional, i.e. if not set, they shouldn't appear in the xlsx file. The original QXlsx uses enums and maps to implement it: the feature is not set, if the map has no corresponding key.
This fork utilises another approach.
For simple properties (bool, int, enums) it uses std::optional
: methods that
return a feature return std::optional
. You can test the feature with std::optional::has_value()
.
For complex properties (f.e. the shape fill or the title text) classes that implement
these properties are shallow-copyable and have isValid()
method.
If the feature is set, isValid()
will return true
.
For types like QString
, QList
if the returned value isEmpty()
then the feature is not set. In some cases though
ECMA-376 allows having empty strings as default values, in this case std::optional
is used.
I try to get rid of the raw pointers. And definitely non-scoped enums shall be replaced with scoped ones. Some parts of the library still need serious overhaul.
You can find examples of charts here:
- See examples
- See wiki - AlexNovichkov: largely outdated! Needs rewriting
- See FAQ - AlexNovichkov: largely outdated! Needs rewriting
- See tested environments for more information.
- See contributors.
- QXlsx is under MIT license. https://github.com/QtExcel/QXlsx
- Thank you for creating the following amazing projects. 👍
- Qt is under LGPL v3 license or Commercial license. https://www.qt.io/
- QtXlsxWriter is under MIT license. 👍 https://github.com/dbzhang800/QtXlsxWriter
- Qt-Table-Printer is under BSD 3-Clause license. https://github.com/T0ny0/Qt-Table-Printer
- recurse is under MIT license. https://github.com/pkoretic/recurse
- libfort is under MIT license. https://github.com/seleznevae/libfort
- colorprintf is under MIT license. https://github.com/VittGam/colorprintf
- HelloActions-Qt is under MIT license. https://github.com/jaredtao/HelloActions-Qt
- Leave me a issue. https://github.com/QtExcel/QXlsx/issues
- If you are interested in participating in the project, please contact us by issue.
- My native language is not English and my English is not fluent. Please, use EASY English. :-)
- If you would like to translate README.md into your native language, please contact me.
- You can either raise an issue or use a pull request. (such as README.ko.md)
- For issues on this fork contact me here
⭐ Qxlnt https://github.com/QtExcel/Qxlnt
- Qxlnt is a helper project that allows xlnt to be used in Qt.
- xlnt is a excellent C++ 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.
⭐ Qlibxlsxwriter https://github.com/QtExcel/Qlibxlsxwriter
- Qlibxlsxwriter is a helper project that allows libxlsxwriter to be used in Qt.
- libxlsxwriter is a C library for creating Excel XLSX files.
⭐ QSimpleXlsxWriter https://github.com/QtExcel/QSimpleXlsxWriter
- Use SimpleXlsxWriter in Qt.
- SimpleXlsxWriter is C++ library for creating XLSX files for MS Excel 2007 and above.