1
0
mirror of https://github.com/QtExcel/QXlsx.git synced 2025-01-30 05:02:52 +08:00
QXlsx/README.md

89 lines
3.9 KiB
Markdown
Raw Normal View History

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-06-11 13:36:24 +09:00
<p align="center">
2018-06-11 13:37:20 +09:00
<img src="markdown.data/QXlsx2.jpg">
2018-06-11 13:36:24 +09:00
</p>
2017-10-05 14:35:06 +09:00
2018-06-23 15:56:28 +09:00
[![Built-with-Qt5-Badge](https://img.shields.io/badge/Built%20with-Qt5-green.svg)](https://www.qt.io/) [![Built-with-cpp-Badge](https://img.shields.io/badge/Built%20with-C%2B%2B-green.svg)](https://isocpp.org/) [![Xlsx-Badge](https://img.shields.io/badge/Library-xlsx-blue.svg)](https://www.ecma-international.org/publications/standards/Ecma-376.htm)
2017-10-21 16:41:24 +09:00
* QXlsx is excel file(*.xlsx) reader/writer library.
2018-05-17 20:20:17 +09:00
* Because QtXlsx is no longer supported(2014), I created a new project that is based on QtXlsx. (2017-)
2018-04-26 10:18:24 +09:00
* Development language of QXlsx is C++. (with Qt 5.x)
2018-04-26 10:23:29 +09:00
* 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
| Qt | Tool | OS | Build |
| --------- | ---------------- | -------------- | ------- |
| Qt 5.10.1 | MingW | Windows 32bit | :smile: |
| Qt 5.9.2 | MingW | Windows 32bit | :smile: |
| Qt 5.9.1 | Visual Studio 2017 | Windows 64bit | :smile: |
| Qt 5.9.1 | Visual Studio 2017 | Windows 32bit | :smile: |
| Qt 5.9.1 | MingW | Windows 32bit | :smile: |
| Qt 5.9.1 | gcc+make | Ubuntu 16/x64 | :smile: |
| Qt 5.6.0 | MingW | Windows 32bit | :smile: |
| Qt 5.5.1 | MingW | Windows 32bit | :smile: |
| Qt 5.5.0 | gcc+make | Ubuntu 17/i686 | :smile: |
| Qt 5.2.0 | gcc+make | Ubuntu 14/x64 | :smile: |
| Qt 5.0.1 | MingW | Windows 32bit | :smile: |
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-06-14 15:48:31 +09:00
- Unicode test ( :cloud: filename, :cloud: filepath, :sunny: data value)
2018-06-04 14:09:56 +09:00
## To Upgrade
- 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-23 15:17:25 +09:00
## License and links
2018-06-23 15:38:19 +09:00
* ![](https://img.shields.io/badge/license-MIT-blue.svg) MIT License [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT)
* ![](https://img.shields.io/badge/license-MIT-blue.svg) 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-17 18:30:31 +09:00
## Contact
* 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-23 15:58:49 +09:00
## Similar projects going on
2018-06-18 18:07:58 +09:00
* Qxlnt [https://github.com/j2doll/Qxlnt](https://github.com/j2doll/Qxlnt)
2018-06-14 15:04:37 +09:00
- 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.