Skip to content
forked from QtExcel/QXlsx

Excel file(*.xlsx) reader/writer library using Qt 5 or 6. Descendant of QtXlsx.

License

Notifications You must be signed in to change notification settings

alexnovichkov/QXlsx

 
 

Repository files navigation

QXlsx

Conan Center

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.)

About this fork

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 fork concept

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.

See what is yet to be done.

You can find examples of charts here:

How to use

  • See examples
  • See wiki - AlexNovichkov: largely outdated! Needs rewriting
  • See FAQ - AlexNovichkov: largely outdated! Needs rewriting

How to set up (Installation)

Github Actions

Android IOS MacOS Ubuntu Windows CMake cmake-ubuntu

Contributions

License and links

📧 Contact

  • 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

Similar projects

  • 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 is a helper project that allows libxlsxwriter to be used in Qt.
  • libxlsxwriter is a C library for creating Excel XLSX files.
  • Use SimpleXlsxWriter in Qt.
  • SimpleXlsxWriter is C++ library for creating XLSX files for MS Excel 2007 and above.

About

Excel file(*.xlsx) reader/writer library using Qt 5 or 6. Descendant of QtXlsx.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.0%
  • Other 1.0%