QT下BasicExcel庫(kù)初體驗(yàn)
本文介紹了QT下BasicExcel庫(kù)初體驗(yàn),BasicExcel是一個(gè)很好的讀取excel的庫(kù),對(duì)于做小程序來說很方便,作為一個(gè)初學(xué)者,現(xiàn)在來初步討論一下對(duì)于這個(gè)庫(kù)的使用。
BasicExcel的下載地址:http://www.codeproject.com/KB/office/BasicExcel.aspx 同時(shí)還附有BasicExcel的庫(kù)函數(shù)。
首先建立一個(gè)工程,取名為qtexcel,在這里使用的方法是widget。將下載的壓縮包里的文件解壓出來,并且在工程里包含BasicExcel.hpp和BasicExcel.cpp這兩個(gè)文件。如圖是工程結(jié)構(gòu)圖。
在此我們做一些初始化的工作。
1、在widget.h 中加入 #include "BasicExcel.hpp" ;
2、在widget.cpp 中加入 #include <QDebug>;
- using namespace YExcel; //這個(gè)很重要,因?yàn)檫@個(gè)導(dǎo)致了很多錯(cuò)誤
using namespace YExcel; //這個(gè)很重要,因?yàn)檫@個(gè)導(dǎo)致了很多錯(cuò)誤
在窗口中放置一個(gè)pushbutton,右鍵點(diǎn)擊選擇"go to slot.",在widget.cpp里面的自動(dòng)產(chǎn)生的函數(shù)里面寫上如下代碼:
- view plaincopy to clipboardprint?void Widget::on_pushButton_clicked() {
- BasicExcel e;
- BasicExcelWorksheet* sheet1;
- e.Load("D:/fox.xls");
- sheet1 = e.GetWorksheet("Sheet1");
- if (sheet1) {
- size_t maxRows = sheet1->GetTotalRows();
- size_t maxCols = sheet1->GetTotalCols();
- qDebug() << "Dimension of " << sheet1->GetAnsiSheetName() <<
- " (" << maxRows << ", " << maxCols << ")" << endl;
- printf(" ");
- for (size_t c=0; c<maxCols; ++c) printf("%10d", c+1);
- qDebug() << endl;
- for (size_t r=0; r<maxRows; ++r) {
- qDebug()<<("%10d", r+1);
- for (size_t c =0; c<maxCols; ++c) {
- BasicExcelCell* cell = sheet1->Cell(r,c);
- switch (cell->Type()) //選擇輸出的格式 {
- case BasicExcelCell::UNDEFINED:
- qDebug()<<(" ");
- break;
- case BasicExcelCell::INT:
- qDebug()<<("%10d", cell->GetInteger());
- break;
- case BasicExcelCell::DOUBLE:
- qDebug()<<("%10.6lf", cell->GetDouble());
- break;
- case BasicExcelCell::STRING:
- qDebug()<<("%10s", cell->GetString());
- break;
- case BasicExcelCell::WSTRING:
- qDebug()<<(L"%10s", cell->GetWString());
- break;
- }
- }
- qDebug() << endl;
- }
- }
- }
- void Widget::on_pushButton_clicked()
- {
- BasicExcel e;
- BasicExcelWorksheet* sheet1;
- e.Load("D:/fox.xls");
- sheet1 = e.GetWorksheet("Sheet1");
- if (sheet1)
- {
- size_t maxRows = sheet1->GetTotalRows();
- size_t maxCols = sheet1->GetTotalCols();
- qDebug() << "Dimension of " << sheet1->GetAnsiSheetName() <<
- " (" << maxRows << ", " << maxCols << ")" << endl;
- printf(" ");
- for (size_t c=0; c<maxCols; ++c) printf("%10d", c+1);
- qDebug() << endl;
- for (size_t r=0; r<maxRows; ++r)
- {
- qDebug()<<("%10d", r+1);
- for (size_t c =0; c<maxCols; ++c)
- {
- BasicExcelCell* cell = sheet1->Cell(r,c);
- switch (cell->Type()) //選擇輸出的格式
- {
- case BasicExcelCell::UNDEFINED:
- qDebug()<<(" ");
- break;
- case BasicExcelCell::INT:
- qDebug()<<("%10d", cell->GetInteger());
- break;
- case BasicExcelCell::DOUBLE:
- qDebug()<<("%10.6lf", cell->GetDouble());
- break;
- case BasicExcelCell::STRING:
- qDebug()<<("%10s", cell->GetString());
- break;
- case BasicExcelCell::WSTRING:
- qDebug()<<(L"%10s", cell->GetWString());
- break;
- }
- }
- qDebug() << endl;
- }
- }
- }
即可在控制臺(tái)看見輸出的數(shù)據(jù)。
小結(jié):本文介紹了QT下BasicExcel庫(kù)初體驗(yàn),內(nèi)容介紹到這,通過以上操作,是不是很好實(shí)現(xiàn)。希望以上內(nèi)容能幫你解決問題。