1
0
mirror of https://github.com/QtExcel/QXlsx.git synced 2025-01-16 04:42:53 +08:00
QXlsx/README.md

95 lines
2.6 KiB
Markdown
Raw Normal View History

2017-10-08 15:42:29 +09:00
# QXlsx
2017-08-20 17:04:19 +09:00
2017-09-02 14:40:33 +09:00
> *Read this in other languages: [English](README.md), [한국어](README.ko.md)*
2017-08-20 17:04:19 +09:00
2018-04-19 16:17:18 +09:00
![](markdown.data/IMG_0016.PNG)
2017-10-05 14:35:06 +09:00
2017-09-14 20:27:18 +09:00
## Excel reader/writer library
2017-10-21 16:41:24 +09:00
* QXlsx is excel file(*.xlsx) reader/writer library.
2018-04-19 16:17:18 +09:00
* Because QtXlsx is no longer supported, I created a new project that os based on QtXlsx.
* Development language of QXlsx is C++.
* It is written for static library using Qt 5.x. (2017)
2018-04-19 16:41:31 +09:00
2018-04-19 16:52:57 +09:00
<img src="./markdown.data/comp.png" width="64" height="64" />
2018-04-19 16:17:18 +09:00
2017-10-09 21:11:25 +09:00
## License
2018-04-19 16:17:18 +09:00
* QXlsx is licensed under the MIT License https://opensource.org/licenses/MIT
* QtXlsx License (See Debao Zhang (2014) site) : https://github.com/dbzhang800/QtXlsxWriter
* Qt License (See Qt Company site) : https://www.qt.io/
2017-10-09 21:11:25 +09:00
2018-04-19 16:17:18 +09:00
## Sample (Hello excel)
2018-04-19 16:36:59 +09:00
2017-10-09 21:08:32 +09:00
### Writing excel file
```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
2017-10-09 21:08:32 +09:00
### Reading excel file
```cpp
2017-10-17 19:01:47 +09:00
Document xlsx("Test.xlsx"); // load excel file
if (!xlsx.isLoadPackage()) { // failed to load excel
2017-10-21 16:41:24 +09:00
return;
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 ...)
qint32 styleNo = cell->styleNumber(); // read cell style number
2017-10-09 21:08:32 +09:00
if ( styleNo >= 0 )
qDebug() << row << " " << var << " , style:" << styleNo;
else
qDebug() << row << " " << var;
```
## How to build
2018-04-19 16:17:18 +09:00
* Install Qt 5 from [Qt Company](https://www.qt.io) (2017-)
* Clone github source code
```sh
git clone https://github.com/j2doll/QXlsx.git
```
* Build QXlsx project
```sh
cd QXlsx
qmake QXlsx.pro
make
```
* Build HelloExample
```sh
cd HelloExcel
Fix HelloExcel.pro for your own build environment
qmake HelloExcel.pro
make
```
* Run HelloExample
```sh
./HelloExample
```
2017-10-09 21:08:32 +09:00
2017-09-02 14:41:08 +09:00
## Test environment
2018-04-19 16:36:59 +09:00
Test Environment is below.
- 5.9.2 (MingW/Windows 32bit)
- Qt 5.9.1 (Visual Studio 2017/Windows 64bit)
- Qt 5.9.1 (Visual Studio 2017/Windows 32bit)
- Qt 5.9.1 (MingW/Windows 32bit)
- Qt 5.9.1 (Ubuntu 16/Linux x64)
- Qt 5.6.0 (MingW/Windows 32bit)
- Qt 5.5.1 (MingW/Windows 32bit)
- Qt 5.5.0 (Ubuntu 17/Linux i686)
- Qt 5.2.0 (Ubuntu 14/Linux x64)
- Qt 5.0.1 (MingW/Windows 32bit)
2017-10-17 18:48:33 +09:00
2018-04-19 16:17:18 +09:00
## To Test
2017-10-17 18:48:33 +09:00
The following tests should be performed.
2018-04-19 16:36:59 +09:00
- 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-04-19 16:36:59 +09:00
## Contacts
2017-08-20 18:13:27 +09:00
* [j2doll@gmail.com](mailto:j2doll@gmail.com)
2018-04-19 16:17:18 +09:00
* Hi! I'm j2doll. My native language is not English and my English is not fluent. Please, use EASY English. :-)