QT下BasicExcel库的初步使用

来源:互联网 发布:linux vi 到行尾 编辑:程序博客网 时间:2024/05/22 07:43

转载请注明来历:http://blog.csdn.net/icyfox_bupt/archive/2011/05/23/6440874.aspx

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

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

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

 


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


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

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

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


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

 

[cpp] view plaincopy
  1. void Widget::on_pushButton_clicked()  
  2. {  
  3.     BasicExcel e;  
  4.     BasicExcelWorksheet* sheet1;  
  5.     e.Load("D:/fox.xls");  
  6.     sheet1 = e.GetWorksheet("Sheet1");  
  7.     if (sheet1)  
  8.         {  
  9.         size_t maxRows = sheet1->GetTotalRows();  
  10.         size_t maxCols = sheet1->GetTotalCols();  
  11.         qDebug() << "Dimension of " << sheet1->GetAnsiSheetName() <<  
  12.             " (" << maxRows << ", " << maxCols << ")" << endl;  
  13.         printf(" ");  
  14.         for (size_t c=0; c<maxCols; ++c) printf("%10d", c+1);  
  15.         qDebug() << endl;  
  16.         for (size_t r=0; r<maxRows; ++r)  
  17.         {  
  18.           qDebug()<<("%10d", r+1);  
  19.           for (size_t c =0; c<maxCols; ++c)  
  20.           {  
  21.             BasicExcelCell* cell = sheet1->Cell(r,c);  
  22.             switch (cell->Type())  //选择输出的格式  
  23.             {  
  24.               case BasicExcelCell::UNDEFINED:  
  25.                 qDebug()<<(" ");  
  26.                 break;  
  27.               case BasicExcelCell::INT:  
  28.                 qDebug()<<("%10d", cell->GetInteger());  
  29.                 break;  
  30.               case BasicExcelCell::DOUBLE:  
  31.                 qDebug()<<("%10.6lf", cell->GetDouble());  
  32.                 break;  
  33.               case BasicExcelCell::STRING:  
  34.                 qDebug()<<("%10s", cell->GetString());  
  35.                 break;  
  36.               case BasicExcelCell::WSTRING:  
  37.                 qDebug()<<(L"%10s", cell->GetWString());  
  38.                 break;  
  39.             }  
  40.           }  
  41.           qDebug() << endl;  
  42.         }  
  43.       }  
  44. }  

 

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

原创粉丝点击