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

本文介绍了QT下BasicExcel库初体验,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.       }  
  83. } 

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

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

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...