2018-05-26 12:20:33 +09:00
|
|
|
# QXlsx
|
2017-08-20 17:04:19 +09:00
|
|
|
|
2018-05-11 14:39:38 +09:00
|
|
|
> *Read this in other languages: [English](README.md), :kr: [한국어](README.ko.md)*
|
2017-08-20 17:04:19 +09:00
|
|
|
|
2018-07-05 16:00:50 +09:00
|
|
|
<p align="center"><img src="https://github.com/j2doll/QXlsx/raw/master/markdown.data/QXlsx2.jpg"></p>
|
2017-10-05 14:35:06 +09:00
|
|
|
|
2018-06-26 20:11:46 +09:00
|
|
|
![](markdown.data/qxlsx-badge1.png)
|
2018-06-23 15:56:28 +09:00
|
|
|
|
2017-10-21 16:41:24 +09:00
|
|
|
* QXlsx is excel file(*.xlsx) reader/writer library.
|
2018-07-05 16:00:50 +09:00
|
|
|
* 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 5.x)
|
|
|
|
* You don't need to use static library or dynamic shared object using QXlsx.
|
2018-04-23 10:10:09 +09:00
|
|
|
|
2018-06-23 15:46:14 +09:00
|
|
|
|
2018-04-19 16:17:18 +09:00
|
|
|
## Sample (Hello excel)
|
2018-04-19 16:36:59 +09:00
|
|
|
|
2018-05-11 14:39:38 +09:00
|
|
|
### :one: Writing excel file(*.xlsx)
|
2017-10-09 21:08:32 +09:00
|
|
|
```cpp
|
|
|
|
QXlsx::Document xlsx;
|
2017-10-17 18:34:37 +09:00
|
|
|
xlsx.write("A1", "Hello Qt!"); // write "Hello Qt!" to cell(A,1). it's shared string.
|
|
|
|
xlsx.saveAs("Test.xlsx"); // save the document as 'Test.xlsx'
|
2017-10-09 21:08:32 +09:00
|
|
|
```
|
2018-04-19 16:36:59 +09:00
|
|
|
|
2018-05-11 14:39:38 +09:00
|
|
|
### :two: Reading excel file(*.xlsx)
|
2017-10-09 21:08:32 +09:00
|
|
|
```cpp
|
2017-10-17 19:01:47 +09:00
|
|
|
Document xlsx("Test.xlsx"); // load excel file
|
2018-06-11 13:40:38 +09:00
|
|
|
if (!xlsx.isLoadPackage()) {
|
|
|
|
return; // failed to load excel
|
2017-10-17 19:01:47 +09:00
|
|
|
}
|
2017-10-17 19:02:56 +09:00
|
|
|
int row = 1; int col = 2;
|
|
|
|
Cell* cell = xlsx.cellAt(row, col); // get cell pointer. (row is 1. column is 2.)
|
2017-10-09 21:08:32 +09:00
|
|
|
if ( cell == NULL )
|
2017-10-21 16:41:24 +09:00
|
|
|
continue; // cell vaule is not set
|
2017-10-17 18:33:26 +09:00
|
|
|
QVariant var = cell->readValue(); // read cell value (number(double), QDateTime, QString ...)
|
2018-06-14 15:04:37 +09:00
|
|
|
qDebug() << var; // display value
|
2017-10-09 21:08:32 +09:00
|
|
|
```
|
|
|
|
|
2018-06-02 12:08:14 +09:00
|
|
|
## How to set up
|
2018-06-02 11:39:09 +09:00
|
|
|
* See [How to setup QXlsx project](HowToSetProject.md)
|
2017-10-09 21:08:32 +09:00
|
|
|
|
2017-09-02 14:41:08 +09:00
|
|
|
## Test environment
|
2018-06-23 15:36:09 +09:00
|
|
|
|
2018-07-05 16:05:59 +09:00
|
|
|
- [Tested environments](TestEnv.md)
|
2017-10-17 18:48:33 +09:00
|
|
|
|
2018-04-19 16:17:18 +09:00
|
|
|
## To Test
|
2018-06-14 15:48:31 +09:00
|
|
|
- The following tests should be performed.
|
|
|
|
- Microsoft Excel
|
|
|
|
- Google Spreadsheet
|
|
|
|
- LibreOffice Calc Spreasheet
|
2018-04-19 16:17:18 +09:00
|
|
|
|
|
|
|
![](markdown.data/LibreOffice-Google-XLSX.png)
|
2017-10-17 18:48:33 +09:00
|
|
|
|
2018-07-05 16:05:59 +09:00
|
|
|
- Unicode test (filename :cloud:, filepath :cloud:, data value :sunny:)
|
2018-06-14 15:48:31 +09:00
|
|
|
|
2018-06-26 20:38:09 +09:00
|
|
|
## To Upgrade
|
2018-06-04 14:09:56 +09:00
|
|
|
- Develop the encryption function of xlsx
|
2018-06-07 16:42:35 +09:00
|
|
|
- Build and test on Android
|
2018-06-04 14:09:56 +09:00
|
|
|
|
2018-06-26 20:38:09 +09:00
|
|
|
## License and links
|
2018-07-05 16:05:59 +09:00
|
|
|
* ![](markdown.data/mit-license.png) QXlsx is under MIT License. [https://github.com/j2doll/QXlsx](https://github.com/j2doll/QXlsx)
|
|
|
|
* ![](markdown.data/mit-license.png) QtXlsx License : See Debao Zhang (2014) site. [https://github.com/dbzhang800/QtXlsxWriter](https://github.com/dbzhang800/QtXlsxWriter)
|
2018-06-23 15:17:25 +09:00
|
|
|
* Qt License (See Qt Company site) [https://www.qt.io/](https://www.qt.io/)
|
|
|
|
|
2018-06-23 15:59:50 +09:00
|
|
|
## :email: Contact
|
2018-06-17 18:30:31 +09:00
|
|
|
* Hi! I'm j2doll (aka Jay Two). My name is Korean and it is difficult for foreigners to pronounce it. Call me j2doll.
|
2018-06-11 13:40:38 +09:00
|
|
|
* Leave me a issue. [https://github.com/j2doll/QXlsx/issues](https://github.com/j2doll/QXlsx/issues)
|
|
|
|
- If you are interested in participating in the project, please contact us by issue.
|
2018-06-17 18:30:31 +09:00
|
|
|
- My native language is not English and my English is not fluent. Please, use EASY English. :-)
|
|
|
|
|
2018-06-28 16:05:55 +09:00
|
|
|
## Similar projects
|
2018-07-05 16:00:50 +09:00
|
|
|
|
|
|
|
### :star: <b>Qxlnt</b> [https://github.com/j2doll/Qxlnt](https://github.com/j2doll/Qxlnt)
|
|
|
|
|
|
|
|
![](https://github.com/j2doll/Qxlnt/raw/master/markdown-data/Concept-QXlnt.jpg)
|
|
|
|
|
|
|
|
- Qxlnt is a helper project that allows xlnt to be used in Qt.
|
|
|
|
- xlnt is a excellent library for usinf 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.
|
|
|
|
|
|
|
|
### :star: <b>Qlibxlsxwriter</b> [https://github.com/j2doll/Qlibxlsxwriter](https://github.com/j2doll/Qlibxlsxwriter)
|
|
|
|
|
|
|
|
![](https://github.com/j2doll/Qlibxlsxwriter/raw/master/markdown.data/logo.png)
|
|
|
|
|
|
|
|
- Qlibxlsxwriter is a helper project that allows libxlsxwriter to be used in Qt.
|
|
|
|
- libxlsxwriter is a C library for creating Excel XLSX files.
|
2018-06-28 16:05:55 +09:00
|
|
|
|