2018-05-26 12:20:33 +09:00
|
|
|
|
# QXlsx
|
2017-08-20 17:04:40 +09:00
|
|
|
|
|
2018-05-30 20:38:09 +09:00
|
|
|
|
> *Read this in other languages: [English](README.md), :kr: [한국어](README.ko.md)*
|
2017-08-20 17:04:40 +09:00
|
|
|
|
|
2018-06-11 13:33:28 +09:00
|
|
|
|
<center> ![](markdown.data/QXlsx2.jpg) </center>
|
2017-10-05 14:35:35 +09:00
|
|
|
|
|
2018-04-19 16:17:18 +09:00
|
|
|
|
* QXlsx는 엑셀 파일(*.xlsx)을 읽고 쓰는 라이브러리입니다.
|
2018-04-23 10:10:09 +09:00
|
|
|
|
* QtXlsx가 더이상 지원되지 않기 때문에(2014), QtXlsx에 기반한 새로운 프로젝트를 만들었습니다. (2017-)
|
2018-04-26 10:18:24 +09:00
|
|
|
|
* QXlsx는 개발언어로 C++를 사용합니다. (Qt 5.x 사용)
|
2018-04-26 10:23:29 +09:00
|
|
|
|
* QXlsx는 정적 또는 동적 라이브러리를 사용하지 않아도 되도록 제작되었습니다.
|
2018-04-19 16:36:59 +09:00
|
|
|
|
|
2018-04-19 16:54:42 +09:00
|
|
|
|
![](markdown.data/comp.png)
|
2017-08-20 18:44:16 +09:00
|
|
|
|
|
2018-05-11 14:41:26 +09:00
|
|
|
|
## 라이센스
|
2018-06-11 13:32:35 +09:00
|
|
|
|
* QXlsx는 MIT 라이센스를 사용합니다. https://opensource.org/licenses/MIT
|
2018-05-11 14:41:26 +09:00
|
|
|
|
* QtXlsx 라이센스는 Debao Zhang(2014) 싸이트를 참조하십시오. https://github.com/dbzhang800/QtXlsxWriter
|
|
|
|
|
* Qt 라이센스는 Qt Company 싸이트를 참조하십시오. https://www.qt.io/developers/
|
2017-08-20 17:03:24 +09:00
|
|
|
|
|
2018-04-19 16:17:18 +09:00
|
|
|
|
## 활용 예제 (Hello excel)
|
2018-04-19 16:36:59 +09:00
|
|
|
|
|
2018-05-11 14:41:26 +09:00
|
|
|
|
### :one: 엑셀(xlsx) 파일 쓰기
|
2017-10-09 21:08:32 +09:00
|
|
|
|
```cpp
|
|
|
|
|
QXlsx::Document xlsx;
|
2017-10-17 18:44:32 +09:00
|
|
|
|
xlsx.write("A1", "Hello Qt!"); // 셀(A,1)에 'Hello Qt!'값을 설정. 공유 문자열 타입으로 설정됨.
|
|
|
|
|
xlsx.saveAs("Test.xlsx"); // 'Test.xlsx'라는 이름으로 엑셀 파일을 저장.
|
2017-10-09 21:08:32 +09:00
|
|
|
|
```
|
2018-04-19 16:36:59 +09:00
|
|
|
|
|
2018-05-11 14:41:26 +09:00
|
|
|
|
### :two: 엑셀(xlsx) 파일 읽기
|
2017-10-09 21:08:32 +09:00
|
|
|
|
```cpp
|
2017-10-17 19:04:27 +09:00
|
|
|
|
Document xlsx("Test.xlsx"); // 엑셀 파일 읽기
|
|
|
|
|
if (!xlsx.isLoadPackage()) { // 엑셀 파일 읽기 실패
|
2017-10-21 16:41:24 +09:00
|
|
|
|
return;
|
2017-10-17 19:04:27 +09:00
|
|
|
|
}
|
|
|
|
|
int row = 1; int col = 2;
|
|
|
|
|
Cell* cell = xlsx.cellAt(row, col); // Cell의 pointer를 얻음 (행(row)는 1번째, 열(column)은 2번째)
|
2017-10-09 21:08:32 +09:00
|
|
|
|
if ( cell == NULL )
|
2017-10-21 16:41:24 +09:00
|
|
|
|
continue; // 해당 행렬의 cell값이 설정되어 있지 않음
|
2017-10-17 18:44:32 +09:00
|
|
|
|
QVariant var = cell->readValue(); // 셀값을 읽음 (숫자(double), 날자(QDateTime), 문자열(QString) ...)
|
2018-06-11 13:32:35 +09:00
|
|
|
|
qDebug() << << var; // 값 표시
|
2017-10-09 21:08:32 +09:00
|
|
|
|
```
|
|
|
|
|
|
2018-06-02 12:08:14 +09:00
|
|
|
|
## 설정하는 방법
|
2018-06-02 12:36:14 +09:00
|
|
|
|
* [QXlsx 프로젝트 설정하는 방법](HowToSetProject.ko.md)을 참조하세요.
|
2017-10-09 21:08:32 +09:00
|
|
|
|
|
2017-08-20 17:09:07 +09:00
|
|
|
|
## 테스트 환경
|
2018-04-19 16:36:59 +09:00
|
|
|
|
테스트된 환경은 다음과 같습니다.
|
2018-04-23 10:10:09 +09:00
|
|
|
|
- Qt 5.10.1 (MingW/Windows 32bit)
|
2018-04-19 19:18:27 +09:00
|
|
|
|
- Qt 5.9.2 (MingW/Windows 32bit)
|
2018-04-19 16:36:59 +09:00
|
|
|
|
- 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)
|
2018-04-19 16:17:18 +09:00
|
|
|
|
|
|
|
|
|
## 테스트 할 일
|
|
|
|
|
다음과 같은 테스트들이 수행되어야 합니다.
|
|
|
|
|
- 마이크로소프트 엑셀
|
|
|
|
|
- 구글 스프레드쉬트
|
|
|
|
|
- 리브레오피스 캘크 스프레드시트
|
2017-10-17 18:44:32 +09:00
|
|
|
|
|
2018-04-19 16:17:18 +09:00
|
|
|
|
![](markdown.data/LibreOffice-Google-XLSX.png)
|
2017-10-17 18:50:46 +09:00
|
|
|
|
|
2018-06-04 14:09:56 +09:00
|
|
|
|
## 업그레이드 할 일
|
|
|
|
|
- xlsx의 암복호화 기능 개발
|
2018-06-07 16:42:35 +09:00
|
|
|
|
- Android에서 빌드 및 테스트
|
2018-06-04 14:09:56 +09:00
|
|
|
|
|
2017-09-02 14:30:31 +09:00
|
|
|
|
## 문의
|
2018-06-10 13:14:14 +09:00
|
|
|
|
* 이슈를 남겨 주세요. https://github.com/j2doll/QXlsx/issues
|
|
|
|
|
* 프로젝트 참여에 관심이 있으신 분은 이슈로 연락주세요.
|