QT下BasicExcel库初体验

移动开发
本文介绍了QT下BasicExcel库初体验,实现对表格数据的操作的过程,很简单的操作。请看一下详细内容。

本文介绍了QTBasicExcel库初体验,BasicExcel是一个很好的读取excel的库,对于做小程序来说很方便,作为一个初学者,现在来初步讨论一下对于这个库的使用。

BasicExcel的下载地址:http://www.codeproject.com/KB/office/BasicExcel.aspx 同时还附有BasicExcel的库函数。

首先建立一个工程,取名为qtexcel,在这里使用的方法是widget。将下载的压缩包里的文件解压出来,并且在工程里包含BasicExcel.hpp和BasicExcel.cpp这两个文件。如图是工程结构图。

QT下BasicExcel库初体验

在此我们做一些初始化的工作。

1、在widget.h 中加入 #include "BasicExcel.hpp" ;

2、在widget.cpp 中加入 #include <QDebug>;  

  1. using namespace YExcel;  //这个很重要,因为这个导致了很多错误 

using namespace YExcel;  //这个很重要,因为这个导致了很多错误

在窗口中放置一个pushbutton,右键点击选择"go to slot.",在widget.cpp里面的自动产生的函数里面写上如下代码:

  1. view plaincopy to clipboardprint?void Widget::on_pushButton_clicked()   {  
  2.        BasicExcel e;  
  3.        BasicExcelWorksheet* sheet1;  
  4.        e.Load("D:/fox.xls");  
  5.        sheet1 = e.GetWorksheet("Sheet1");  
  6.        if (sheet1)           {   
  7.           size_t maxRows = sheet1->GetTotalRows();  
  8.           size_t maxCols = sheet1->GetTotalCols();  
  9.            qDebug() << "Dimension of " << sheet1->GetAnsiSheetName() <<   
  10.               " (" << maxRows << ", " << maxCols << ")" << endl;  
  11.            printf(" ");  
  12.            for (size_t c=0; c<maxCols; ++c) printf("%10d", c+1);  
  13.            qDebug() << endl;   
  14.           for (size_t r=0; r<maxRows; ++r) {  
  15.              qDebug()<<("%10d", r+1);  
  16.              for (size_t c =0; c<maxCols; ++c) {  
  17.                BasicExcelCell* cell = sheet1->Cell(r,c);   
  18.               switch (cell->Type())  //选择输出的格式  {   
  19.                 case BasicExcelCell::UNDEFINED:   
  20.                   qDebug()<<(" ");   
  21.                   break;  
  22.                  case BasicExcelCell::INT:  
  23.                    qDebug()<<("%10d", cell->GetInteger());  
  24.                    break;  
  25.                  case BasicExcelCell::DOUBLE:   
  26.                   qDebug()<<("%10.6lf", cell->GetDouble());  
  27.                    break;   
  28.                 case BasicExcelCell::STRING:  
  29.                    qDebug()<<("%10s", cell->GetString());  
  30.                    break;  
  31.                  case BasicExcelCell::WSTRING:   
  32.                   qDebug()<<(L"%10s", cell->GetWString());  
  33.                    break;  
  34.                }  
  35.              }   
  36.             qDebug() << endl;  
  37.            }  
  38.          }  
  39.    }  
  40.   void Widget::on_pushButton_clicked()  
  41. {  
  42.     BasicExcel e;  
  43.     BasicExcelWorksheet* sheet1;  
  44.     e.Load("D:/fox.xls");  
  45.     sheet1 = e.GetWorksheet("Sheet1");  
  46.     if (sheet1)  
  47.         {  
  48.         size_t maxRows = sheet1->GetTotalRows();  
  49.         size_t maxCols = sheet1->GetTotalCols();  
  50.         qDebug() << "Dimension of " << sheet1->GetAnsiSheetName() << 
  51.             " (" << maxRows << ", " << maxCols << ")" << endl;  
  52.         printf(" ");  
  53.         for (size_t c=0; c<maxCols; ++c) printf("%10d", c+1);  
  54.         qDebug() << endl;  
  55.         for (size_t r=0; r<maxRows; ++r)  
  56.         {  
  57.           qDebug()<<("%10d", r+1);  
  58.           for (size_t c =0; c<maxCols; ++c)  
  59.           {  
  60.             BasicExcelCell* cell = sheet1->Cell(r,c);  
  61.             switch (cell->Type())  //选择输出的格式  
  62.             {  
  63.               case BasicExcelCell::UNDEFINED:  
  64.                 qDebug()<<(" ");  
  65.                 break;  
  66.               case BasicExcelCell::INT:  
  67.                 qDebug()<<("%10d", cell->GetInteger());  
  68.                 break;  
  69.               case BasicExcelCell::DOUBLE:  
  70.                 qDebug()<<("%10.6lf", cell->GetDouble());  
  71.                 break;  
  72.               case BasicExcelCell::STRING:  
  73.                 qDebug()<<("%10s", cell->GetString());  
  74.                 break;  
  75.               case BasicExcelCell::WSTRING:  
  76.                 qDebug()<<(L"%10s", cell->GetWString());  
  77.                 break;  
  78.             }  
  79.           }  
  80.           qDebug() << endl;  
  81.         }  
  82.       }  

即可在控制台看见输出的数据。

小结:本文介绍了QTBasicExcel库初体验,内容介绍到这,通过以上操作,是不是很好实现。希望以上内容能帮你解决问题。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-16 17:19:33

Qt Meego

2011-06-20 13:23:03

Qt Quick QML

2023-03-06 21:19:19

2013-12-12 11:33:31

iOS 7API

2009-03-09 15:12:39

XenServer安装

2009-08-01 09:06:35

UbuntuOneLinux开源操作系统

2011-06-24 11:03:31

Qt 多线程 线程

2017-03-08 15:39:11

Linuxselect函数

2023-07-15 08:01:38

2011-05-30 15:12:10

App Invento 初体验

2010-11-22 10:31:17

Sencha touc

2010-11-16 09:12:42

SQL Azure

2011-09-15 15:03:10

2010-12-13 11:39:39

2011-08-02 10:26:59

iOS 多线程 线程

2009-11-30 10:09:02

谷歌Chrome OS

2011-11-01 10:30:36

Node.js

2013-06-08 10:15:29

Outlook 201Outlook 201

2023-07-17 08:34:03

RocketMQ消息初体验

2011-09-05 10:20:21

Sencha ToucAPP
点赞
收藏

51CTO技术栈公众号