QT下BasicExcel库初体验
创始人
2024-08-01 06:21:36
0

本文介绍了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 ;  

  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
  13.            qDebug() << endl;   
  14.           for (size_t r=0; r
  15.              qDebug()<<("%10d", r+1);  
  16.              for (size_t c =0; 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
  54.         qDebug() << endl;  
  55.         for (size_t r=0; r
  56.         {  
  57.           qDebug()<<("%10d", r+1);  
  58.           for (size_t c =0; 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库初体验,内容介绍到这,通过以上操作,是不是很好实现。希望以上内容能帮你解决问题。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...